dom4j是一个组织,针对xml解析提供解析器dom4j
dom4j-1.6.1.jar下载地址:
https://pan.baidu.com/s/1GtdymJFSMlJ9f-b5OV_5Og 提起码:mpag
初始xml文档:
<?xml version="1.0" encoding="UTF-8"?>
<p1>
<person>
<name>zhangsan</name>
<age>20</age>
</person>
<person>
<name>lisi</name>
<age>30</age>
</person>
</p1>
使用dom4j查询xml:
1、创建解析器
2、得到Document
3、得到根节点
4、得到目标标签
5、获取标签里的值
package xmlTest;
import java.util.List;
import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
public class Dom4j {
public static void main(String[] args) throws Exception {
// TODO Auto-generated method stub
selectName();
}
public static void selectName() throws Exception{
/*
* 1、创建解析器
* 2、得到document
* 3、得到根节点
* 4、得到p1
* 5、得到p1下面的name
* 6、得到name里的值
*/
SAXReader saxReader = new SAXReader();
Document document = saxReader.read("src/p1.xml");
Element root = document.getRootElement();
List<Element> list = root.elements("person");
for(Element element:list) {
Element name1 = element.element("name");
String s = name1.getText();
System.out.println(s);
}
}
}
使用dom4j实现添加节点操作:
1、创建解析器
2、得到Document
3、得到根节点
4、获取目标节点
5、在目标节点下添加节点
6、在添加完成的节点下添加文本
7、回写xml
public static void addSex() throws Exception{
/*
* 1、创建解析器
* 2、得到document
* 3、得到根节点
* 4、得到目标节点
* 5、在目标节点下添加节点
* 6、在节点下添加文本
* 7、回写xml
*/
SAXReader saxReader = new SAXReader();
Document document = saxReader.read("src/p1.xml");
Element root = document.getRootElement();
Element p1 = root.element("person");
Element sex1 = p1.addElement("sex");
sex1.setText("男");
// 回写xml
OutputFormat format = OutputFormat.createPrettyPrint();
XMLWriter xmlWriter = new XMLWriter(new FileOutputStream("src/p1.xml"), format);
xmlWriter.write(document);
xmlWriter.close();
}
xml文档效果:
<person>
<name>zhangsan</name>
<age>20</age>
<sex>男</sex>
</person>