Java - 添加到 DOM XML 文件

标签 java xml dom

我有以下 XML,我想向该 xml 添加另一个“产品”。

<?xml version="1.0" encoding="ISO-8859-1"?>
<products>
    <product>
        <name>Computer</name>
        <code>PC1003</code>
        <description>Basic Computer</description>
        <price>399.99</price>
    </product>
    <product>
        <name>Monitor</name>
        <code>MN1003</code>
        <description>LCD Monitor</description>
        <price>99.99</price>
    </product>
    <product>
        <name>Printer</name>
        <code>PR1003x</code>
        <description>Inkjet Printer</description>
        <price>54.23</price>
    </product>
</products>

这是我到目前为止的代码:

        // Variables
        File file = new File("db_products.xml"); // set xml to parse

        // Create builders
        DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
        DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
        Document doc = dBuilder.parse(file); // load xml file
        doc.getDocumentElement().normalize();

        doc.createElement("product");

我并不关心新的“产品”部分添加到哪里。我似乎无法理解节点和元素之间的区别。我假设添加新“产品”部分的正确方法是将子项添加到“产品”,然后将子项(名称、代码等)添加到“产品”。

任何有关如何轻松执行此操作的帮助或简单教程的链接将不胜感激。

最佳答案

您需要做的是首先检索products 元素,然后对该元素调用appendChild。像这样的事情:

Element productElement = doc.createElement("product");
productElement.setAttribute("name", "value");
//Other name value pairs...

//Append the products element to the right spot.
Element productsElement = (Element) doc.getElementByTagName("products").item(0);
productsElement.appendChild(productElement);

//Convert doc to xml string
DOMSource domSource = new DOMSource(doc);
StringWriter writer = new StringWriter();
StreamResult result = new StreamResult(writer);
TransformerFactory tf = TransformerFactory.newInstance();
Transformer transformer = tf.newTransformer();
transformer.transform(domSource, result);
String xmlAsString = writer.toString();

关于Java - 添加到 DOM XML 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13923661/

相关文章:

python - 使用 lxml 在 Python 中存储系统路径的 XML

android - ReToucherView的onTouchListener已禁用其滚动

xml - XPATH查询使用xml中的值

javascript - id动态添加到元素后如何通过id获取元素?

javascript - 如何在 jquery 或 javascript 中访问动态加载的元素?

java - 简单介绍java游戏编程

java - Solr WhitespaceTokenizerFactory -\r\n 不被视为空格?

javascript - 如何在事件处理程序内执行安全的异步操作,防止不一致?

javascript - 通过服务器端渲染对 DataTable 进行排序

java - 线程池、共享数据、Java同步