📜  java xml 元素获取属性值 - Java (1)

📅  最后修改于: 2023-12-03 15:15:58.260000             🧑  作者: Mango

Java XML 元素获取属性值

在 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 方式获取属性值

在 DOM 方式中,我们可以通过 Element 对象的 getAttribute(String name) 方法来获取元素的属性值。例如:

// 获取 book 元素的 id 属性值
Element bookElement = (Element) doc.getElementsByTagName("book").item(0);
String id = bookElement.getAttribute("id");
SAX 方式获取属性值

在 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 文件。