2

次の 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");

新しい「製品」セクションがどこに追加されるかはあまり気にしません。ノードと要素の違いを理解できないようです。新しい「製品」セクションを追加する正しい方法は、「製品」に子を追加してから、「製品」に子 (名前、コードなど) を追加することだと思います。

これを簡単に行う方法についてのヘルプ、または簡単なチュートリアルへのリンクをいただければ幸いです。

4

1 に答える 1

3

あなたがする必要があるのは、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();
于 2012-12-17T23:13:30.770 に答える