什么是DOM4J
DOM4J(Document Object Model for Java)是用来读写XML文件的一个开源的JavaXML API。 采用Java集合框架,并完全支持DOM、SAX和JAXP。
为什么使用DOM4J
DOM4J凭着优秀的性能、强大的功能和易用性。越来越多的Java软件都在使用dom4j来读写XML,连Sun的JAXM也在用dom4j。
怎么用DOM4J
- DOM4J为第三方软件,第一步引入DOM4J的jar包,或者引入DOM4J的maven依赖。下为DOM4J依赖
<dependency>
<groupId>dom4j</groupId>
<artifactId>dom4j</artifactId>
<version>1.6.1</version>
</dependency>
- 待解析的XML文件
<?xml version="1.0" encoding="UTF-8"?>
<students>
<student id="001" type="A">
<studentName>张三</studentName>
<course>
<courseName>数学</courseName>
<courseName>英语</courseName>
</course>
<sex>男</sex>
<age>21</age>
</student >
<student id="002">
<studentName>李四</studentName>
<sex>男</sex>
<age>19</age>
</student>
</students>
- 利用DOM4J解析XML文件代码实现
public class DOM4JParser {
public static void main(String[] args) {
//待解析的xml文件路径
Parser("src/student.xml");
}
public static void Parser(String xmlPath) {
SAXReader reader = new SAXReader();
// 声明Document对象
Document doc = null;
try {
// (2). 读取xml文件,获得Document对象
doc = reader.read(xmlPath);
} catch (DocumentException e) {
e.printStackTrace();
}
// (3). 获得根元素
Element root = doc.getRootElement();
// (4). 重根元素遍历解析
parserElement(root);
}
private static void parserElement(Element element) {
// 获取当前元素名称
System.out.print("elementName :" + element.getName());
// 获得当前元素内容 处理获得内容
if (!"".equals(element.getTextTrim()) && element.getTextTrim() != null) {
System.out.println(":" + element.getTextTrim());
} else {
System.out.println();
}
if (element != null) {
// 获得当前元素的属性迭代器
Iterator<?> attributeIterator = element.attributeIterator();
// 遍历出所有属性 处理获得的属性
while (attributeIterator.hasNext()) {
Attribute attr = (Attribute) attributeIterator.next();
System.out.println("attrname :" + attr.getName() + ":" + attr.getText());
}
// 获得当前元素的元素迭代器
Iterator<?> elementIterator = element.elementIterator();
// 迭代出所有子元素 有子元素 则解析当前元素
while (elementIterator.hasNext()) {
// 解析元素
parserElement((Element) elementIterator.next());
}
}
}
}
- 运行结果如下
来源:CSDN
作者:进击的小赤佬
链接:https://blog.csdn.net/weixin_43155742/article/details/103541568