天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

java對(duì)XML文件的解析、節(jié)點(diǎn)的增加、刪除操作總結(jié)

1、Java代碼:
主要采用dom來(lái)進(jìn)行操作
復(fù)制代碼 代碼如下:
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;
}
/**
* 構(gòu)造方法
* @param path:xml文件的路徑
* @param nodes:要解析的xml節(jié)點(diǎn)名稱(chēng)
*/
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部分
復(fù)制代碼 代碼如下:
<?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、總結(jié):
看對(duì)xml操作的三個(gè)方法(讀、寫(xiě)、刪),他們的初始化語(yǔ)句都相同:
復(fù)制代碼 代碼如下:
builder = factory.newDocumentBuilder();
Document doc=builder.parse(path);
doc.normalize();

開(kāi)始我打算把這部分相同的部分拿出來(lái)寫(xiě)在構(gòu)造方法中,但是在測(cè)試中發(fā)現(xiàn),這樣總是會(huì)報(bào)空指針的錯(cuò)誤(搞了我好久);
而只是把
builder = factory.newDocumentBuilder();
放到builder的初始化語(yǔ)句中的時(shí)候,讀沒(méi)問(wèn)題,但是當(dāng)寫(xiě)或者刪的時(shí)候也會(huì)報(bào)錯(cuò);
所以就寫(xiě)成現(xiàn)在這樣了,感覺(jué)有點(diǎn)亂亂的,但也沒(méi)想到什么好的方法,就先貼到這里了,以后可能會(huì)用得著

jsp技術(shù)java對(duì)XML文件的解析、節(jié)點(diǎn)的增加、刪除操作總結(jié),轉(zhuǎn)載需保留來(lái)源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 好男人好资源在线观看 | 哺乳溢出羽月希中文字幕 | 揉抓捏打抽插射免费视频 | 欧美s00老人| 亚州中文字幕 | WWW亚洲精品久久久无码 | 九九热视频免费 | 大香伊蕉在人线国产最新 | 国产一区二区三区四区五在线观看 | 在线视频中文字幕 | 少爷被多个暗卫肉高h | 99久久蜜臀AV免费看蛮 | 亚洲欧美日韩国产精品26u | 美女打开双腿扒开屁股男生 | 97在线看视频福利免费 | 5g天天奭视频 | 精品无码一区二区三区不卡 | 成人毛片18岁女人毛片免费看 | 在线视频 亚洲 | 伦理片秋霞免费影院 | 国产麻豆剧果冻传媒免费网站 | 久久伊人免费 | 最新果冻传媒在线观看免费版 | 一个人的视频全免费在线观看www | 欧美在线看费视频在线 | 真实处破女全过程完免费观看 | 男女啪啪久久精品亚洲A | 海角国精产品一区一区三区糖心 | 中文字幕在线视频网站 | 三级黄.色 | 手机看片一区二区 | 亚洲不卡高清免v无码屋 | 国产日韩欧美另类 | 国产99青草全福视在线 | 国产成人精品免费视频大全可播放的 | 两个人的视频hd全免费 | 国产高清视频在线观看不卡v | 99在线观看免费 | 尤物99久久久合集一区区 | 欧美人与动牲交ZOOZ特 | 丰满女朋友在线观看中文 |