首页 >Java >java教程 >如何使用 DOM 在 Java 中读写 XML 数据?

如何使用 DOM 在 Java 中读写 XML 数据?

Linda Hamilton
Linda Hamilton原创
2024-12-06 01:26:09498浏览

How to Read and Write XML Data in Java Using the DOM?

如何使用 Java 访问和修改 XML 数据

文档对象模型 (DOM) 提供了用于访问和编辑 XML 文档的标准接口在爪哇。以下是有关如何使用 DOM 读写 XML 文件的详细指南:

读取 XML 文件:

  1. 导入库: 首先导入必要的 XML 相关的库:

    import javax.xml.parsers.*;
    import javax.xml.transform.*;
    import javax.xml.transform.dom.*;
    import javax.xml.transform.stream.*;
    import org.xml.sax.*;
    import org.w3c.dom.*;
  2. 实例化DocumentBuilderFactory:创建DocumentBuilderFactory的实例,负责创建DocumentBuilder对象:

    DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
  3. 创建 DocumentBuilder: 使用工厂获取用于解析 XML 文档的 DocumentBuilder 实例:

    DocumentBuilder db = dbf.newDocumentBuilder();
  4. 解析 XML 文档: 在构建器上调用 parse() 来解析 XML 文件并创建一个 DOM 模型文档:

    Document dom = db.parse(xmlFile);
  5. 访问 XML 元素: 使用 getElementsByTagName(tag) 检索与指定标签对应的节点:

    NodeList nl = doc.getElementsByTagName(tag);
  6. 提取文本值:如果该节点有子节点,使用 getFirstChild().getNodeValue() 检索文本值:

    String value = nl.item(0).getFirstChild().getNodeValue();

写入 XML 文件:

  1. 初始化文档:创建一个新的文档实例:

    Document dom = db.newDocument();
  2. 创建根元素: 建立 XML 文档的根元素:

    Element rootElement = dom.createElement("rootElement");
  3. 添加子元素: 将子元素追加到根元素并提供其文本内容:

    Element childElement = dom.createElement("childElement");
    childElement.appendChild(dom.createTextNode("text content"));
    rootElement.appendChild(childElement);
  4. 将根元素附加到文档:将根元素添加到文档:

    dom.appendChild(rootElement);
  5. 实例化 Transformer: 创建一个 Transformer 实例将 DOM 模型转换为 XML 文档:

    Transformer tr = TransformerFactory.newInstance().newTransformer();
  6. 设置转换器属性: 配置转换器以缩进 XML 并使用正确的编码:

    tr.setOutputProperty(OutputKeys.INDENT, "yes");
    tr.setOutputProperty(OutputKeys.METHOD, "xml");
    tr.setOutputProperty(OutputKeys.ENCODING, "UTF-8");
  7. 转换并保存XML: 将 DOM 源传递给转换器并指定保存为 XML 的目标文件:

    tr.transform(new DOMSource(dom), new StreamResult(new FileOutputStream(outputFile)));

以上是如何使用 DOM 在 Java 中读写 XML 数据?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn