簡體   English   中英

如何在Java中使用DOM在XML文檔中的相同層次結構級別上添加兩個或多個相同名稱的元素

[英]How to add two or more elements of the same name at the same hierarchical level in an XML document using DOM in Java

我一直在嘗試使用DOM在Java中創建XML文檔,其中在相同的層次結構級別上有多個具有相同名稱的汽車元素,類似於以下內容:

<Root>
  <Car>
    <Make>Ford</Make>
    <Model>Fiesta</Model>
  </Car>
  <Car>
    <Make>VW</Make>
    <Model>Golf</Model>
  </Car>
</Root>

但是,在XML的構造過程中,每當我嘗試添加另一個Car元素時,它似乎都會覆蓋已經存在的Car元素,導致我在輸出中僅獲得一個Car元素。

我使用以下代碼創建car元素:

Element carElement = doc.createElement("Car");

然后嘗試附加到我使用以下代碼創建的第一個Car元素:

root.appendChild(carElement);

我也嘗試了以下代碼無濟於事:

Node existingCar = doc.getElementsByTagName("Car").item(0);
existingCar.getParentNode().insertBefore(carElement, existingCar);

Java文檔指出,對於appendChild()和insertBefore()方法,如果newChild節點都存在,則首先將其刪除-因此,為什么我認為Im僅在XML中看到一個輸出。

因此,有人可以確認DOM是否可行嗎? 如果是這樣,他們是否可以建議或指出解決方案的方向? 謝謝

我可以確認使用DOM可以做到這一點!

您尚未向我們顯示您的實際代碼,您嘗試在其中添加多個具有相同名稱的子元素,因此我們無法確切告訴您為什么它不起作用。 但是,也許此代碼段將為您提供有關如何修復代碼的提示。 要添加五個Car元素:

    DocumentBuilder b = ...;

    DOMImplementation impl = b.getDOMImplementation();
    Document d = impl.createDocument(null, "Root", (DocumentType) null);
    Element root = d.getDocumentElement();
    for (int i = 0; i < 5; ++i) {
        Element car = d.createElement("Car");
        // add sub-elements/attributes to car element
        ...
        root.appendChild(car);
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM