Dom4j
1. 下载 dom4j
首先,打开 dom4j 的官网:dom4j官网
下载需要版本的 dom4j-xxx.jar 文件,并把这个文件复制到项目的 lib 目录中。
一定要注意把这个 jar 文件添加到类路径下。右键 -> Add as Liberay…,并在弹出的窗口中点击确定即可。
2. 使用
根据官网提供的操作方法来进行学习。首先我们了解如何通过 dom4j 来解析 xml 文件
2.1 解析 xml
首先需要编写一个 xml 文件,用于解析操作。
<?xml version="1.0" encoding="UTF-8" ?>
<persons>
<person id="1" name="张三" age="20"></person>
<person id="2" name="李四" age="18"></person>
</persons>
接下来编写程序来读取这个 xml 文件的内容——解析。
package com.jock168.dom4j;
import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
/**
* 解析(读取)Person.xml文件
*/
public class Demo01 {
public static void main(String[] args) throws Exception {
// 1. 创建 SAXReader 对象
final SAXReader reader = new SAXReader();
// 2. 调用这个对象的 read() 方法来读取需要解析的 xml 文件, 并返回 Document 对象
final Document document = reader.read(Demo01.class
.getClassLoader()
.getResourceAsStream("Person.xml"));
System.out.println(document);
// 3. 通过 Document 对象得到根节点
final Element root = document.getRootElement();
System.out.println(root.getName());
//4.添加子节点
final Element e1=root.addElement("student");
e1.addAttribute("name","孙悟空");
e1.addAttribute("age","500");
e1.addText("这是文本内容");
root.addElement("student").addAttribute("name","小白龙").addAttribute("age","21").addText("小白龙的信息");
//输出xml文件
final FileWriter out=new FileWriter("stu.xml");
document.write(out);
out.close();
//输出带有空格和换行的xml内容
final FileWriter out=new FileWriter("stu-print.xml");
final OutputFormat format=OutputFormat.createPrettyPrint();
final XMLWriter writer=new XMLWriter(out,format);
writer.write(document);
writer.close();
// 6.通过根节点获取所有子节点
Element personElm=root.element("person");// "person"是节点名
String text=psersonELm.getText();
String text=root.elementText("name");//这个是取得根节点下的name字节点的文字.
//7.取得某节点下指定名称的所有节点并进行遍历
List nodes = rootElm.elements("pserson");
for (Iterator it = nodes.iterator(); it.hasNext();) {
Element elm = (Element) it.next();
// do something
}
}
}