📜  Java DOM解析器-解析XML文档(1)

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

Java DOM解析器-解析XML文档

XML (Extensible Markup Language) 是一种常用于存储和交互数据的格式。XML文档包含一个标签层次结构和属性,通常很难手动解析和处理。为了帮助程序员轻松地解析和处理XML文档,Java提供了许多 API。

其中之一就是 DOM (Document Object Model) 解析器。 DOM 解析器将整个XML文档加载到内存中,以树状结构表示XML文档中的元素。开发人员可以访问和操作文档的任何一部分,并根据应用程序的需要修改XML文档。

DOM解析器的特点

DOM解析器具有以下特点:

  • 比较易于使用
  • 内存占用较高,只能处理较小的XML文档
  • 可以修改XML文档的任何部分
使用Java DOM解析器解析XML文档

在Java中可以使用javax.xml.parsers包下的DocumentBuilder类创建DOM解析器。下面是解析XML文档的示例代码:

import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.DocumentBuilder;
import org.w3c.dom.Document;

...

try {
    // 创建DOM解析器工厂
    DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
    
    // 创建DOM解析器
    DocumentBuilder parser = factory.newDocumentBuilder();
    
    // 解析XML文档
    Document doc = parser.parse("file.xml");
    
    // 处理XML文档...
    
} catch (Exception e) {
    e.printStackTrace();
}

上面的代码示例中,我们首先创建了一个DOM解析器工厂对象,然后使用该工厂对象创建了一个DOM解析器对象。接下来,我们使用解析器对象解析XML文档并得到一个Document对象,可以通过该对象访问XML文档的任何部分。

DOM解析器的示例代码

下面是一个简单的示例代码,用于解析XML文档并输出每个员工的姓名和工资:

import javax.xml.parsers.*;
import org.w3c.dom.*;
import java.io.*;

public class EmployeeParser {

    public static void main (String[] args) {
        try {
            File file = new File("employees.xml");
            DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
            DocumentBuilder db = dbf.newDocumentBuilder();
            Document doc = db.parse(file);
            doc.getDocumentElement().normalize();

            NodeList nodeList = doc.getElementsByTagName("employee");

            for (int i = 0; i < nodeList.getLength(); i++) {
                Node node = nodeList.item(i);
                Element element = (Element) node;

                String name = element.getElementsByTagName("name").item(0).getTextContent();
                String salary = element.getElementsByTagName("salary").item(0).getTextContent();

                System.out.println("Name: " + name);
                System.out.println("Salary: " + salary);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

在上面的代码示例中,我们使用DOM解析器解析名为"employees.xml"的XML文档。我们获取XML文档中所有员工的节点,并逐一遍历它们。对于每个员工节点,我们解析其名称和工资,并将其输出到控制台。

结论

Java DOM解析器是解析XML文档的一种方法,具有易用性和灵活性。它适用于处理较小且需要修改的XML文档。要在Java中使用DOM解析器,我们需要使用javax.xml.parsers包下的DocumentBuilder类,它提供了创建DOM解析器的方法。