📅  最后修改于: 2023-12-03 15:15:58.260000             🧑  作者: Mango
在 Java 中,我们可以使用基于 DOM 或者 SAX 的方式来操作 XML 文件。其中 DOM 会将整个 XML 文件读取到内存中,方便对节点进行增删改查等操作。而 SAX 则是一种基于事件驱动的方式,更适合处理大型 XML 文件。
在 XML 中,每个元素都可以有多个属性,例如:
<book id="001">
<title>Head First Java</title>
<author>Kathy Sierra, Bert Bates</author>
<price>¥59.00</price>
</book>
我们可以通过 DOM 或者 SAX 的方式来获取元素的属性值。
在 DOM 方式中,我们可以通过 Element
对象的 getAttribute(String name)
方法来获取元素的属性值。例如:
// 获取 book 元素的 id 属性值
Element bookElement = (Element) doc.getElementsByTagName("book").item(0);
String id = bookElement.getAttribute("id");
在 SAX 方式中,我们可以通过实现 org.xml.sax.helpers.DefaultHandler
类来处理 XML 文件的事件。当 SAX 解析器遇到元素时,会触发 startElement
方法,我们可以通过 Attributes
对象来获取元素的属性值。例如:
public class MyHandler extends DefaultHandler {
public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException {
// 获取 book 元素的 id 属性值
String id = attributes.getValue("id");
}
}
需要注意的是,SAX 解析器可以在读取 XML 文件的过程中就开始触发事件,而不是等待整个文件都被读取到内存中再开始处理。因此,SAX 方式更适合处理大型 XML 文件。