使用DOM4J解析XML
程序员文章站
2022-05-28 21:05:15
...
DOM4j解析XML并非Java官方提供的工具,使用DOM4j解析XML相对简单,你需要引入依赖
<dependency>
<groupId>dom4j</groupId>
<artifactId>dom4j</artifactId>
<version>1.1</version>
</dependency>
写个简单的测试类测试下,使用到的xml还是之前的demo.xml
import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
import java.io.File;
import java.util.Iterator;
import java.util.List;
import java.util.ListIterator;
public class Dom4jParseXml {
public static void main(String[] args) {
SAXReader saxReader = new SAXReader();
try {
//获取输入流
//你也可以将demo.xml放在resources目录下,然后通过下面方式获取
//InputStream resourceAsStream = Dom4jParseXml .class.getClassLoader().getResourceAsStream("demo.xml");
Document document = saxReader.read(new File("D:/demo.xml"));
//获取xml根节点
Element rootElement = document.getRootElement();
List<Element> elements = rootElement.elements();
ListIterator<Element> elementListIterator = elements.listIterator();
while (elementListIterator.hasNext()) {
Element next = elementListIterator.next();
List<Attribute> attributes = next.attributes();
for (Attribute attribute : attributes) {
System.out.println(attribute.getName() + ":" + attribute.getValue());
}
Iterator iterator = next.elementIterator();
while (iterator.hasNext()) {
Element element1 = (Element) iterator.next();
System.out.println(element1.getName() + ":" + element1.getStringValue());
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
接着你需要做的就是把解析出来的数据封装在对象里了。输出结果如下
节点名=id,节点值=person1
节点名=name,节点值=simons
节点名=sex,节点值=男
节点名=age,节点值=24
节点名=address,节点值=魔都
节点名=id,节点值=person2
节点名=name,节点值=rose
节点名=sex,节点值=女
节点名=age,节点值=22
节点名=address,节点值=帝都
引申阅读:
使用SAX解析XML:https://blog.csdn.net/fanrenxiang/article/details/81098041
使用JDOM解析XML:https://blog.csdn.net/fanrenxiang/article/details/81100740
使用DOM解析XML:https://blog.csdn.net/fanrenxiang/article/details/81078854
下一篇: 使用dom4j处理XML