[英]how to write and get all the xml elements in same level with same name using JDOM
[英]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.