Java DOM解析XML文件示例

4星 · 超过85%的资源 需积分: 3 13 下载量 70 浏览量 更新于2024-10-17 收藏 4KB TXT 举报
在Java中处理XML文件是一项常见的任务,特别是在Web开发和数据交换过程中。本篇代码示例展示了如何使用DOM解析器(Document Object Model)来读取一个简单的XML文件。DOM解析器允许我们以树形结构的方式遍历和操作XML文档。 首先,导入必要的Java库,包括`javax.xml.parsers.DocumentBuilderFactory`、`javax.xml.parsers.DocumentBuilder`以及`org.w3c.dom`相关的类。`DocumentBuilderFactory`用于创建`DocumentBuilder`对象,这个工厂是构建DOM解析器的基础。 在`DomParse`类的构造函数中,首先创建了一个`DocumentBuilderFactory`实例(步骤1),这是为了后续建立与XML解析器的连接。然后,通过`newInstance()`方法初始化`DocumentBuilder`对象(步骤2),这是实际执行XML解析的关键步骤。DOM解析器需要将XML输入流转换为一个可操作的`Document`对象,所以我们创建一个`FileInputStream`来读取名为`test1.xml`的文件(步骤3)。 接下来,调用`parse()`方法并传入输入流(步骤4),这会将XML内容解析成一个`Document`对象。`Document`是整个XML文档的根节点,我们可以从这里开始进行遍历和检索。 一旦得到`Document`对象,我们可以使用`getElementsByTagName()`方法获取特定标签名的节点列表,如`<book>`。`Element`类是`Node`的子类,代表XML中的一个元素,包含了属性和子元素。例如,要获取所有`<book>`元素,可以使用以下代码: ```java NodeList bookNodes = doc.getElementsByTagName("book"); for (int i = 0; i < bookNodes.getLength(); i++) { Element bookElement = (Element) bookNodes.item(i); String email = bookElement.getAttribute("email"); String name = bookElement.getElementsByTagName("name").item(0).getTextContent(); String price = bookElement.getElementsByTagName("price").item(0).getTextContent(); // 打印或进一步处理书的信息 System.out.println("邮箱: " + email + ", 名称: " + name + ", 价格: " + price); } ``` 这段代码首先获取`<book>`元素的列表,然后依次获取每个元素的邮件地址、名称和价格属性。`getTextContent()`方法用于获取文本内容,`getAttribute()`则用于获取指定属性值。 通过DOM解析器,Java提供了强大的工具来处理XML数据,包括读取、遍历和修改XML文档。在这个例子中,我们演示了如何使用`DocumentBuilder`将XML文件转换为`Document`对象,并提取其中的信息。在实际应用中,可能还需要处理异常,比如`FileNotFoundException`、`IOException`和`ParserConfigurationException`。