java實(shí)現(xiàn)XML增加元素操作簡單示例
本文實(shí)例講述了java實(shí)現(xiàn)XML增加元素操作。分享給大家供大家參考,具體如下:
package Day01;
import java.io.*;
import javax.xml.parsers.*;
import javax.xml.transform.*;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import org.w3c.dom.*;
public class CRUDDEMO {
/*public void addElement() throws Exception{
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document doc = builder.parse(new File ("src/Day01/Book.xml"));
Element newEle = doc.createElement("作者");
newEle.setTextContent("ZC");
Node nod = doc.getElementsByTagName("書").item(0);
nod.appendChild(newEle);
Source sour = new DOMSource(doc);
Result result = new StreamResult (new FileOutputStream("src/Day01/Book.xml"));
write (sour, result);
}*/
public void addElement2() throws Exception{
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); //建立工廠
DocumentBuilder builder = factory.newDocumentBuilder(); //拿到builder
Document doc = builder.parse(new File ("src/Day01/Book.xml")); //獲得document,這是終極目的
Element newEle = doc.createElement("作者");// 創(chuàng)建新元素/標(biāo)簽
newEle.setTextContent("ZC"); //給元素設(shè)置內(nèi)容 <作者>ZC</作者>
Node nod = doc.getElementsByTagName("書名").item(0); //通過nodelist的item()方法獲得具體節(jié)點(diǎn)
/**
* 在具體節(jié)點(diǎn)插入元素用 節(jié)點(diǎn).insertBefore方法
* 第一個(gè)參數(shù)是要插入的新節(jié)點(diǎn),第二個(gè)是插入的位置
*/
nod.insertBefore(newEle, doc.getElementsByTagName("書名").item(0));
/**
* DOMSource(Node n)
* 注意 element是Node的一個(gè)子類,所以可以把doc放入構(gòu)造函數(shù)
*
*
*/
Source sour = new DOMSource(doc);
Result result = new StreamResult (new FileOutputStream("src/Day01/Book.xml"));
write (sour, result);
}
public void write(Source source,Result result) {
TransformerFactory tffactory = TransformerFactory.newInstance();
Transformer tr;
try {
tr = tffactory.newTransformer();
tr.transform(source, result);
} catch (TransformerConfigurationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (TransformerException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static void main(String[] args) throws Exception {
CRUDDEMO cr = new CRUDDEMO();
cr.addElement2();
}
}
修改前的XML:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<書架>
<書>
<書名>Thinking in Java</書名>
<作者>Eric</作者>
<售價(jià)>$34</售價(jià)>
</書>
</書架>
修改后的XML
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<書架>
<書>
<作者>ZC</作者>
<書名>Thinking in Java</書名>
<作者>Eric</作者>
<售價(jià)>$34</售價(jià)>
</書>
</書架>
PS:這里再為大家提供幾款關(guān)于xml操作的在線工具供大家參考使用:
在線XML/JSON互相轉(zhuǎn)換工具:
http://tools.jb51.net/code/xmljson
在線格式化XML/在線壓縮XML:
http://tools.jb51.net/code/xmlformat
XML在線壓縮/格式化工具:
http://tools.jb51.net/code/xml_format_compress
XML代碼在線格式化美化工具:
http://tools.jb51.net/code/xmlcodeformat
希望本文所述對大家java程序設(shè)計(jì)有所幫助。
相關(guān)文章
解決idea不支持SpringBoot yml文件的圖文教程
這篇文章主要介紹了解決idea不支持SpringBoot yml文件,需要的朋友可以參考下2018-06-06
idea hibernate jpa 生成實(shí)體類的實(shí)現(xiàn)
這篇文章主要介紹了idea hibernate jpa 生成實(shí)體類的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-11-11
Java中循環(huán)冗余校驗(yàn)(CRC32)的實(shí)現(xiàn)
CRC校驗(yàn)實(shí)用程序庫在數(shù)據(jù)存儲(chǔ)和數(shù)據(jù)通訊領(lǐng)域,為了保證數(shù)據(jù)的正確,就不得不采用檢錯(cuò)的手段,下面這篇文章主要給大家介紹了關(guān)于Java中循環(huán)冗余校驗(yàn)(CRC32)實(shí)現(xiàn)的相關(guān)資料,需要的朋友可以參考借鑒,下面來一起看看吧。2017-10-10
Java實(shí)現(xiàn)手寫乞丐版線程池的示例代碼
在這篇文章當(dāng)中我們主要介紹實(shí)現(xiàn)一個(gè)非常簡易版的線程池,深入的去理解其中的原理,麻雀雖小,五臟俱全,感興趣的小伙伴快跟隨小編一起學(xué)習(xí)學(xué)習(xí)吧2022-10-10
Java使用Sharding-JDBC分庫分表進(jìn)行操作
Sharding-JDBC 是無侵入式的 MySQL 分庫分表操作工具,本文主要介紹了Java使用Sharding-JDBC分庫分表進(jìn)行操作,感興趣的可以了解一下2021-08-08
使用MAT進(jìn)行JVM內(nèi)存分析實(shí)例
這篇文章主要介紹了使用MAT進(jìn)行JVM內(nèi)存分析實(shí)例,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-04-04
解決ApplicationContext獲取不到Bean的問題
這篇文章主要介紹了解決ApplicationContext獲取不到Bean的問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-06-06

