1.需要先在WEB-INF -->lib目录下引入dom4j的jar包。
2.代码示例如下:
aa.xml文件内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<users>
<user id="TB10001" country="Chinese">
<id>10001</id>
<name>admin</name>
<password>aaabbb</password>
<salary>salary > 15000 & salary < 30000</salary>
</user>
<user id="TB10002" country="Chinese" source="PC">
<id>10002</id>
<name>tony</name>
<password>666666</password>
<salary>
<![CDATA[
salary>15000 & salary<30000
]]>
</salary>
</user>
</users>
package com.zc;
import java.io.File;
import java.io.IOException;
import java.util.List;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.Node;
import org.dom4j.io.SAXReader;
public class AA{
public static void main(String[] args) throws IOException {
SAXReader reader = new SAXReader();
Document document=null;
try {
document=reader.read(new File("C:\\ws\\fxsvr\\src\\resources\\aa.xml"));
} catch (DocumentException e){
e.printStackTrace();
}
System.out.println("1.------>使用绝对路径方式查找元素");
Element element=(Element) document.selectSingleNode("/users/user/password");
String password=element.getText();
System.out.println("第一个用户的密码是:"+password);
System.out.println("2.------>使用相对路径的方式查找元素");
Element userElement=(Element) element.selectSingleNode("../salary");
System.out.println( "第一个用户的薪水区间是:"+userElement.getText());
System.out.println("3.------>使用全文搜索方式");
System.out.println("获取所有ID元素的文本");
List<Node> idNodeList = document.selectNodes("//id");
for(Node node:idNodeList) {
Element idElement=(Element) node;
System.out.println(idElement.getText());
}
System.out.println("4.------>谓语条件筛选方式");
System.out.println("获取userID为TB10002的用户信息");
Element tBoo2IDElement = (Element)document.selectSingleNode("//user[@id='TB10002']");
List<Element> elementList=tBoo2IDElement.elements();
for(Element usersubElement:elementList) {
System.out.println("user字标签的名称"+usersubElement.getName());
//usersubElement.getText() 留有空格, usersubElement.getTextTrim()去掉空格。
System.out.println("user字标签的文本"+usersubElement.getTextTrim());
}
}
}
3.代码运行效果