DOM4J结合XPATH简单解析xml
程序员文章站
2022-05-28 21:03:33
...
简单运用DOM4J和XPATH去解析xml非常方便和简洁。
首先先导入jaxen包
jaxen的下载地址http://mvnrepository.com/artifact/jaxen/jaxen
假如不导入的话会产生 java.lang.NoClassDefFoundError
DOM4J基本xpath操作主要有以下6种操作
- /AAA/DDD/BBB 表示得到AAA下面DDD下面的BBB元素
- //BBB 表示直接得到BBB元素
- /* 表示的到全部元素
- BBB[1] 表示第一个BBB元素 BBB[last()] 表示最后一个BBB元素
- //BBB[@id] 表示所有id属性的BBB元素
- //BBB[@id=’a’] 表示所有id属性为a的BBB元素
DOM4J中对xpath操作主要有两个方法:
- document.selectSingleNode 表示选取一个元素
- document.selectNodes 表示选取多个元素
下面就对一个xml文件进行简单操作
xml文件
<?xml version="1.0" encoding="UTF-8"?>
<四大名著>
<西游记 id="x001">
<作者 id="1">吴承恩1</作者>
<作者 id="2">吴承恩2</作者>
<朝代>明朝</朝代>
</西游记>
<红楼梦 id="x002">
<作者>曹雪芹</作者>
</红楼梦>
<三国演义 id="x003"/>
</四大名著>
java代码部分操作
SAXReader reader=new SAXReader();
Document document=reader.read(new File("15网工2班.xml"));
//找到四大名著/红楼梦/作者
Node node1=document.selectSingleNode("四大名著/红楼梦/作者");
// 找到所有作者
List<Node> nodes1=document.selectNodes("//作者");
//找到西游记第一个作者注意下标从1开始
Node node2=document.selectSingleNode("四大名著/西游记/作者[1]");
//找到西游记第二个作者2 也就是最后一个
Node node3=document.selectSingleNode("四大名著/西游记/作者[last()]");
//找到有id属性的作者
List<Node> nodes2=document.selectNodes("//作者[@id]");
//找到id属性为1的作者
Node node4=document.selectSingleNode("//作者[@id='1']");
下一篇: 浙江茶叶,带你领略浙江茶文化