SpringBoot集成DOM4J
简洁
DOM4J是一个非常非常优秀的Java XML API,具有性能优异、功能强大和极端易用使用的特点,同时它也是一个开放源代码的软件。如今你可以看到越来越多的Java软件都在使用DOM4J来读写XML,特别值得一提的是连Sun的JAXM也在用DOM4J。
【优点】
①大量使用了Java集合类,方便Java开发人员,同时提供一些提高性能的替代方法。
②支持XPath。
③有很好的性能。
【缺点】
①大量使用了接口,API较为复杂。
POM文件导入依赖包
<dependency>
<groupId>org.dom4j</groupId>
<artifactId>dom4j</artifactId>
<version>2.1.3</version>
</dependency>
XML示例
<dataList>
<data id="10086">
<status value="200" name="状态1">status1</status>
<message value="OK" name="消息1">message1</message>
</data>
<data id="10010">
<status value="400" name="状态2">status2</status>
<message value="NG" name="消息2">message2</message>
</data>
</dataList>
实战案例
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
public class testDom4j {
public void test() {
// 创建读取器
SAXReader reader = new SAXReader();
// 读取文件
Document doc = reader.read(file.getInputStream());
// 获取根元素
Element root = doc.getRootElement();
// 获取根元素下所有元素
List<Element> dataList = root.elements();
// 获取根元素下所有元素
List<Element> dataList = root.elements();
for (Element data : dataList) {
System.out.println(
data.getName()
+
":"
+
data.attributeValue("id")
);
List<Element> statusAndMessageList = data.elements();
for (Element statusAndMessage : statusAndMessageList) {
System.out.println(
statusAndMessage.getName()
+
":"
+
statusAndMessage.attributeValue("value")
+
"、"
+
statusAndMessage.attributeValue("name")
+
"、"
+
statusAndMessage.getText()
);
}
}
}
}
实例输出结果
常用方法
// 创建读取器
SAXReader reader = new SAXReader();
// 读取XML文件
Document document = SAXReader.read();
// 获取根元素
Element rootElement = Element.getRootElement();
// 获取该元素下的所有元素
List<Element> elementList = Element.elements();
// 获取该元素的父元素
Element element = Element.getParent();
// 获取当前元素标签
String elementName = Element.getName();
// 获取当前元素属性值
String elementPropertyValue = Element.attributeValue("属性名称");
// 获取当前元素值(标签中间的值)
String text = Element.getText();