Dom4J解析xml文件
一、什么是 XML?
- XML :可扩展标记语言(EXtensible Markup Language)
- XML 是一种标记语言,很类似 HTML
- XML 的设计宗旨是传输数据,而非显示数据
- XML 标签没有被预定义。您需要自行定义标签。
- XML 被设计为具有自我描述性。
- XML 是 W3C 的推荐标准
二、 XML文档例子
Eclipse创建的一个XML文档内容:
<?xml version="1.0" encoding="UTF-8"?> <!-- 第一句为固定的声明语句 -->
<person> <!--开始标签,可任意定义,但要有对应的结束标签--><!-- person也是根节点 -->
<p1> <!-- person的一个子节点 -->
<name>zhangsan</name>
<age>20</age>
</p1>
<p1>
<name>wangwu</name>
<age>29</age>
</p1>
</person> <!--结束标签,与开始标签对应-->“<name>zhangsan</name>”也可以在name标签中加属性,如:<name address="beijing">zhangsan</name>。
二、 使用Dom4J解析xml文件
DOM4J是dom4j.org出品的一个开源XML解析包,是一个易用的、开源的库,用于XML,XPath和XSLT。它应用于Java平台,采用了Java集合框架并完全支持DOM,SAX和JAXP。
DOM4J解析XML文档的步骤如下:
- 导入dom4j-1.6.1.jar包和jaxen-1.1-beta-7.jar包
- 创建解析器
- 读入XML,获取Document对象
- 获取XML根节点
- 遍历子节点,获取所需要的对象
package com.hdl.dom4jparser;
import java.util.Iterator;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
public class Dom4jTest {
public static void main(String[] args) {
try {
// 1、创建解析器
SAXReader reader = new SAXReader();
// 2 、读取Document对象
Document document = reader.read("conf/persons.xml");
// 3、获取根节点
Element root = document.getRootElement();
// 4、遍历子节点
for (Iterator<Element> eIterator = root.elementIterator(); eIterator.hasNext();) {
// 获取student节点对象
Element stuElement = (Element) eIterator.next();
// System.out.println(stuElement.toString() + "信息如下:");
for (Iterator innerIter = stuElement.elementIterator(); innerIter.hasNext();) {
// 获取student子节点对象
Element innerElement = (Element) innerIter.next();
String innerElementValue = innerElement.getStringValue();
System.out.println(innerElementValue);
}
System.out.println("--------------------");
}
} catch (DocumentException e) {
e.printStackTrace();
}
}
}结果:

相关推荐
与卿画眉共浮生 2020-10-14
xiyang 2020-08-21
XGQ 2020-07-04
Andrewjdw 2020-05-29
Yakamoz 2020-05-26
行吟阁 2020-05-18
88491874 2020-04-30
baijinswpu 2020-07-29
leonranri 2020-07-26
zhongliwen 2020-07-05
麋鹿麋鹿迷了路 2020-07-05
zengyu00 2020-07-05
CoderBoy 2020-06-28
whbing 2020-06-28
绝望的乐园 2020-06-27
wellfly 2020-06-26
菇星獨行 2020-06-25
草原孤狼 2020-06-25
坚持着执着 2020-06-16