2012-10-04 101 views
0

我想爲我的XML文檔中的所有<definition>標籤添加XPath屬性。 XPath的值將來自每個<definition>標記內的嵌套標記<term>Test123</term>。我正在使用import org.w3c.dom.Document;對象。當我跑這條線我很長的XML文件,那麼它告訴我,那裏是<definition>標籤539個實例:從子元素創建XPath

System.out.println(inputDOM.getDocumentElement().getElementsByTagName("definition")); 

所以最終的結果是,必須有已設置的所有定義一個Document對象從長期標籤標記,例如

<definition XPath="Test123"> <term>Test123</term> </definition>

+0

您不清楚您在此處詢問的是什麼。它是如何添加屬性,或如何從屬性或其他東西找到節點? –

+0

如何添加'XPath'屬性到正確的節點 – ThreaT

回答

1

嘗試是這樣的

NodeList definitionElements = inputDOM.getElementsByTagName("definition"); 
for (int i = 0; i < definitionElements.getLength(); i++) { 
    Element current = (Element) definitionElements.item(i); 
    Node term = current.getElementsByTagName("term").item(0); 
    if(term != null && term.getNodeType() == Node.ELEMENT_NODE) 
     current.setAttribute("XPath", ((Element) term).getTextContent()); 
} 

首先我們得到所有<definition>標籤。之後,我們迭代每個<definition>標籤並設置一個新的屬性「XPath」,其值爲<term>子標籤的文本內容

+0

Oups,我不好嘗試用新的編輯代碼 –

+0

試試這個:'((Element)current.getElementsByTagName(「term」))。getTextContent()' –

+0

謝謝。如何將這些更改應用於新的'Document'對象實例?或者我應該將它應用於'inputDOM'變量? – ThreaT