xml-DOM4J的使用
DOM4J
maven依赖
DOM4Jjar包
DOM4J使用xpah:需要jar包:jaxen
<!-- https://mvnrepository.com/artifact/org.jaxen/com.springsource.org.jaxen -->
<dependency>
<groupId>org.jaxen</groupId>
<artifactId>com.springsource.org.jaxen</artifactId>
<version>1.1.1</version>
</dependency>
DOM4J--读取
<?xml version="1.0" encoding="UTF-8"?>
<home>
<parameters>
<title>qwe</title>
</parameters>
<home_body>
<square>
<properties>
<name>name</name>
</properties>
<atom>
<aa></aa>
<bb></bb>
<cc></cc>
</atom>
</square>
</home_body>
</home>
流程
//初始化
SAXReader reader = new SAXReader();
Document document;
try {
//读取文件-加载文档
document = reader.read(file);
//获取根元素
Element root = document.getRootElement();
//获取root下的parameters节点下的title节点
Element param = (Element)root.selectSingleNode("parameters/title");
System.out.println(param.asXML());//将节点以xml字符串的格式输出
//获得home_body节点
Element body = (Element)root.selectSingleNode("home_body");
List<Element> list = body.selectNodes("square");//指定节点(home_body)的子节点中所有的square节点(List)
} catch (DocumentException e) {
e.printStackTrace();
}
方法
读取文件
SAXReader reader = new SAXReader();
Document document = reader.read(file);
获取根节点
getRootElement() 获得根元素
Element对象
elements(…) 获得指定名称的所有子元素。可以不指定名称(获取一级子元素,不获取孙子元素)
获取节点,不获取注释或空白符
element(…) 获得指定名称第一个子元素。可以不指定名称
getName() 获得当前元素的元素名
attributeValue(…) 获得指定属性名的属性值
elementText(…) 获得指定名称子元素的文本值
getText() 获得当前元素的文本内容
xpath使用
root.selectSingleNode("parameters");//获取这个节点下第一个parameters节点?
body.selectNodes("square");//获取这个节点下所有的square节点
body.selectNodes("/home/parameters");// --/单个斜杠--从根节点开始:
- 找到home节点
- 找到parameters节点
body.selectNodes("square/atom")
- 找到当前节点下的square节点
- 找到square节点下的atom节点
给节点添加元素
pro.addElement("id");//添加id节点
pro.selectSingleNode("id").setText("!23");//节点设置文本
DOM4J--写入
侵删
qq:240763433
参考链接一
浙公网安备 33010602011771号