XML现在已经成为一种通用的数据交换格式,它的平台无关性,语言无关性,系统无关性,给数据集成与交互带来了极大的方便。
XML解析在JAVA中有很多种方法,以下只是其中一个示例
<?xml version="1.0" encoding="utf-8"?>
<!--This is izpan.xml documents-->
<Info>
<info>
<name>一人夕</name>
<time>2019-09-14 22:22:24</time>
</info>
</Info>
JAVA 代码
package com.izpan.impl;
import java.util.Iterator;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.Node;
import org.dom4j.io.SAXReader;
public class Dom4jXMLTest {
public static void main(String[] args) {
Dom4jXMLTest dom = new Dom4jXMLTest();
dom.readStringXml();
}
public static void readStringXml() {
try {
// 读取并解析XML文档
// SAXReader就是一个管道,用一个流的方式,把xml文件读出来
SAXReader reader = new SAXReader(); // User.hbm.xml表示你要解析的xml文档
Document doc = reader.read("S://izpan.xml");
Element rootElt = doc.getRootElement(); // 获取根节点
System.out.println("根节点:" + rootElt.getName()); // 拿到根节点的名称
for (int i = 0; i < rootElt.nodeCount(); i++) {
Node node_izpan = rootElt.node(i);
if (node_izpan instanceof Element) {
Element elementTemp = (Element) node_izpan;
System.out.println("二级节点的名:" + node_izpan.getName()); // 拿到第一个二级节点的名称info
// 获取二级节点的下面的子节点forward(三级节点)
for (Iterator iterroot2 = elementTemp.elementIterator(); iterroot2.hasNext();) {
Element el_izpan = (Element) iterroot2.next(); // 得到一个二级节点
System.out.println("info下的三级节点的名:" + el_izpan.getName());
System.out.println("info下的三级节点的值:" + el_izpan.getText()); // 获取info的值
}
}
}
} catch (DocumentException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}
}
最终结果
根节点:Info
二级节点的名:info
info下的三级节点的名:name
info下的三级节点的值:一人夕
info下的三级节点的名:time
info下的三级节点的值:2019-09-14 22:22:24