一区二区久久-一区二区三区www-一区二区三区久久-一区二区三区久久精品-麻豆国产一区二区在线观看-麻豆国产视频

java對XML文件的解析、節點的增加、刪除操作總結

1、Java代碼:
主要采用dom來進行操作
復制代碼 代碼如下:
package test;
import Java.io.IOException;
import Javax.xml.parsers.DocumentBuilder;
import Javax.xml.parsers.DocumentBuilderFactory;
import Javax.xml.parsers.ParserConfigurationException;
import Javax.xml.transform.Transformer;
import Javax.xml.transform.TransformerConfigurationException;
import Javax.xml.transform.TransformerException;
import Javax.xml.transform.TransformerFactory;
import Javax.xml.transform.dom.DOMSource;
import Javax.xml.transform.stream.StreamResult;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;
import org.w3c.dom.Text;
import org.xml.sax.SAXException;
public class XmlOprate {
Document doc;
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder;
NodeList imags;
String path;
public NodeList getImags() {
return imags;
}
public void setImags(NodeList imags) {
this.imags = imags;
}
/**
* 構造方法
* @param path:xml文件的路徑
* @param nodes:要解析的xml節點名稱
*/
public XmlOprate(String path) {
super();
this.path = path;
System.out.println(System.getProperty("user.dir"));
}
/**
* 解析XML
* @param path
*/
public void readXml(){
try {
builder = factory.newDocumentBuilder();
Document doc=builder.parse(path);
doc.normalize();
NodeList imags =doc.getElementsByTagName("imags");
this.setImags(imags);
for (int i=0;i<imags.getLength();i++){
Element link=(Element) imags.item(i);
System.out.print("title: ");
System.out.println(link.getElementsByTagName("title").item(0).getFirstChild().getNodeValue());
System.out.print("URL: ");
System.out.println(link.getElementsByTagName("url").item(0).getFirstChild().getNodeValue());
System.out.print("imgsrc: ");
System.out.println(link.getElementsByTagName("imgsrc").item(0).getFirstChild().getNodeValue());
System.out.println();
}
}catch (ParserConfigurationException e) {
e.printStackTrace();
} catch (SAXException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* addCode
* @param path
*/
public void addXmlCode(String imgsrc,String title,String url){
try {
builder = factory.newDocumentBuilder();
Document doc=builder.parse(path);
doc.normalize();
Text textseg;
Element imag=doc.createElement("imags");
Element linkimgsrc=doc.createElement("imgsrc");
textseg=doc.createTextNode(imgsrc);
linkimgsrc.appendChild(textseg);
imag.appendChild(linkimgsrc);
Element linktitle=doc.createElement("title");
textseg=doc.createTextNode(title);
linktitle.appendChild(textseg);
imag.appendChild(linktitle);
Element linkurl=doc.createElement("url");
textseg=doc.createTextNode(url);
linkurl.appendChild(textseg);
imag.appendChild(linkurl);
doc.getDocumentElement().appendChild(imag);
TransformerFactory tFactory =TransformerFactory.newInstance();
Transformer transformer;
transformer = tFactory.newTransformer();
DOMSource source = new DOMSource(doc);
StreamResult result = new StreamResult(new Java.io.File(path));
transformer.transform(source, result);
}catch(Exception e){
}
}
/**
* delete xml code
* @param path
*/
public void delXmlCode(){
try {
builder = factory.newDocumentBuilder();
doc=builder.parse(path);
doc.normalize();
NodeList imags =doc.getElementsByTagName("imags");
Element elink=(Element) imags.item(0);
elink.removeChild(elink.getElementsByTagName("imgsrc").item(0));
elink.removeChild(elink.getElementsByTagName("title").item(0));
elink.removeChild(elink.getElementsByTagName("url").item(0));
doc.getFirstChild().removeChild(elink);
TransformerFactory tFactory =TransformerFactory.newInstance();
Transformer transformer = tFactory.newTransformer();
DOMSource source = new DOMSource(doc);
StreamResult result = new StreamResult(new Java.io.File(path));
transformer.transform(source, result);
} catch (ParserConfigurationException e) {
e.printStackTrace();
} catch (SAXException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (TransformerConfigurationException e) {
e.printStackTrace();
} catch (TransformerException e) {
e.printStackTrace();
}
}
}

2、xml部分
復制代碼 代碼如下:
<?xml version="1.0" encoding="UTF-8" ?>
<root>
<imags>
<imgsrc>images/ad-01.jpg</imgsrc>
<title>胡志明市</title>
<url>http://torchrelay.beijing2008.cn/cn/journey/hochiminhcity/</url>
</imags>
<imags>
<imgsrc>images/ad-02.jpg</imgsrc>
<title>香港2</title>
<url>http://torchrelay.beijing2008.cn/cn/journey/hongkong/</url>
</imags>
</root>

3、總結:
看對xml操作的三個方法(讀、寫、刪),他們的初始化語句都相同:
復制代碼 代碼如下:
builder = factory.newDocumentBuilder();
Document doc=builder.parse(path);
doc.normalize();

開始我打算把這部分相同的部分拿出來寫在構造方法中,但是在測試中發現,這樣總是會報空指針的錯誤(搞了我好久);
而只是把
builder = factory.newDocumentBuilder();
放到builder的初始化語句中的時候,讀沒問題,但是當寫或者刪的時候也會報錯;
所以就寫成現在這樣了,感覺有點亂亂的,但也沒想到什么好的方法,就先貼到這里了,以后可能會用得著

jsp技術java對XML文件的解析、節點的增加、刪除操作總結,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 不卡视频一区 | 六月丁香婷婷网 | 国产精品国产午夜免费福利看 | 999www成人| 午夜福利国产一级毛片 | 99精品国产福利在线观看 | 美国黑人毛片 | 91热精品| 亚洲国产夜色在线观看 | 97成人在线观看 | 欧美日韩国产色综合一二三四 | 伊人网在线视频 | 1区2区3区4区 | 四虎网站 | 精品视频久久 | 一区二区三区免费在线视频 | 一级毛片成人免费看免费不卡 | 91嫩草国产线免费观看 | 99精品视频看国产啪视频 | 日本最新免费不卡二区在线 | 91视频免费观看高清观看完整 | www.加勒比.com | 黄色网址免费在线播放 | 91年精品国产福利线观看久久 | 国产综合变态自虐重口另类 | 久久伊人中文字幕有码 | 久久亚洲精品成人 | 91色久| 日韩在线视频第一页 | 美国bbbbbbbbb免费毛片 | 国产一区二区三区鲁婷婷 | 小泽玛利亚一区二区三区免费 | 色噜噜狠狠一区二区三区果冻 | chinese国产在线视频 | 午夜免费的国产片在线观看 | 国产精品视频2021 | 看全黄大色黄大片老人做 | 日韩精品一区二区三区视频网 | 中文字幕视频一区 | 久操热久操| 99视频精品免视3 |