⽤Dom4j来解析XML⽂件Dom4j jar包地址:提取码:w5om
⾸先解压Dom4j jar包,解压后如下
然后把 dom4j-1.6.1.jar 复制放到⼯程⽬录下(集成开发⼯具是myeclipse)
在myeclipse⼯程下直接右键dom4j-1.6.1.jar,点击Build Path → Add to Build Path
myeclipse⾃动导⼊jar包,然后就可以使⽤jar包提供的接⼝了。
我们创建⼀个l⽂件放到src⽬录下
<?xml version="1.0" encoding="UTF-8"?>
<;书架>
<;书 >
<;书名>时间简史</书名>
<;作者>霍⾦</作者>
<;售价>60</售价>
</书>
<;书>
<;书名>⼴义相对论</书名>
<;作者>爱因斯坦</作者>
<;售价>65</售价>
</书>
</书架>
Dom4j_parseXML.java编写解析代码
需要导⼊的包:
import java.io.FileOutputStream;
import java.util.List;
import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.Node;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;
注意:除了FileOutputStream和List不是dom4j包的,其他的都是
创建解析器
//创建dom4j解析器
SAXReader reader = new SAXReader();
//加载document对象
Document document = ad("l");
得到某个节点的内容
//拿到根节点
Element root = RootElement();
//拿到所有的书节点
List<Element> list = root.elements("书");
//拿到第⼆本书
Element bookE1 = (1);
//获取售价⽂本
System.out.println(bookE1.elementText("售价"));
遍历所有元素节点
public static void ergodic(Document document) {
treeWalk( RootElement() );
}
public static void treeWalk(Element element) {
for ( int i = 0, size = deCount(); i < size; i++ ) {
Node node = de(i);
if ( node instanceof Element ) {
System.out.Name());
treeWalk( (Element) node );
}
}
}
修改某个元素节点的主体内容
//获取根节点
Element root = RootElement();
//拿到第⼆种书节点
Element bookEL = (Element) root.elements("书").get(1);
使用dom4j解析xml文件//拿到售价节点
Element priceE1 = bookEL.element("售价");
//改变主体内容
priceE1.setText("55");
//将结果保存到硬盘上
XMLWriter writer = new XMLWriter(new FileOutputStream("l"),atePrettyPrint()); writer.write(document);
writer.close();
向指定元素节点中添加⼦元素节点
//获取根节点
Element root = RootElement();
//拿到第⼀种书节点
Element bookEL = (Element) root.elements("书").get(0);
//拿到售价节点
Element priceE1 = bookEL.element("售价");
//添加⼦节点
priceE1.addElement("内部价").setText("50");
//将结果保存到硬盘上
XMLWriter writer = new XMLWriter(new FileOutputStream("l"),atePrettyPrint()); writer.write(document);
writer.close();
向指定元素节点上增加同级元素节点
//获取根节点
Element root = RootElement();
//拿到第⼀种书节点
Element bookEL = (Element) root.elements("书").get(0);
//给书节点添加⼦节点
bookEL.addElement("批发价").setText("30");
//将结果保存到硬盘上
XMLWriter writer = new XMLWriter(new FileOutputStream("l"),atePrettyPrint()); writer.write(document);
writer.close();
删除指定的元素节点
Element root = RootElement();
Element bookEL = (Element) root.elements("书").get(0);
Element insideprice = bookEL.element("售价").element("内部价");
//删除
//将结果保存到硬盘上
XMLWriter writer = new XMLWriter(new FileOutputStream("l"),atePrettyPrint()); writer.write(document);
writer.close();
操作⽂件的属性
//获取根节点
Element root = RootElement();
//拿到第⼀种书节点
Element bookEL = (Element) root.elements("书").get(0);
//增加⼀个属性
bookEL.addAttribute("类", "科普");
//将结果保存到硬盘上
XMLWriter writer = new XMLWriter(new FileOutputStream("l"),atePrettyPrint()); writer.write(document);
writer.close();
以上就是⽤dom4j来解析XML⽂件的⼏种⽅式
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论