SAX, Stream API for XML,把XML文档作为一个流来处理。
SAXReader 属于dom4j
包。dom4j 是 Java 的用于读写XML文件的工具包。
SAXReader 的使用案例:
public class TestSAXReader {
public static void main(String[] args) throws DocumentException {
SAXReader saxReader = new SAXReader();
Document document = saxReader.read("./src/main/java/org/example/data.xml");
Element rootElement = document.getRootElement();
System.out.println(rootElement.getName()); // 获取标签名
System.out.println(rootElement.attributeCount()); // 标签属性总数
System.out.println(rootElement.attribute(0)); // 获取标签的第一个属性
System.out.println(rootElement.attribute(0).getName()); // 第一个属性的属性名
System.out.println(rootElement.attribute(0).getValue()); // 第一个属性的属性值
System.out.println(rootElement.attribute(1)); // 获取标签的第二个属性
List<Attribute> attributes = rootElement.attributes();
for (Attribute attribute : attributes) {
System.out.println("name: " + attribute.getName() + " value: " + attribute.getValue());
}
List<Element> contact = rootElement.selectNodes("//contact");
for (Element element : contact) {
System.out.println(element.attributeValue("id"));
}
}
}
data.xml:
<?xml version="1.0" encoding="UTF-8" ?>
<contactList id="123" value="hello">
<contact id="001">
<name>张三</name>
<age>20</age>
<phone>15312032418</phone>
<email>zhangsan@qq.com</email>
<qq>6433132131</qq>
</contact>
<contact id="002">
<name>李四</name>
<age>20</age>
<phone>14312032418</phone>
<email>lisi@qq.com</email>
<qq>4133123131</qq>
</contact>
</contactList>