2017-10-20 166 views
2

我怎樣才能通過屬性獲取XML值以下XML:的元素名稱獲取XML值

我曾嘗試:

String xml = "<Info><document><document>234doc</document></document></Info>"; 

Document doc = DocumentBuilderFactory.newInstance().newDocumentBuilder() 
     .parse(new InputSource(new StringReader(xml))); 

NodeList errNodes = doc.getElementsByTagName("error"); 
if (errNodes.getLength() > 0) { 
    Element err = (Element)errNodes.item(0); 
} else { 
    Node value = doc.getElementsByTagName("document").item(0); 
    out.println(value); 
} 

我要找的輸出:「234doc」。但我不確定如何獲得價值。任何人都可以請建議嗎?

+4

這裏值得用你的術語來精確 - 你根本沒有任何屬性。你正試圖通過它的*元素名*來獲取元素的值。現在,你現在看到了什麼?請注意,你只是在檢查第一個'document'元素,而你在另一個裏面有兩個。 –

+0

@JonSkeet編輯了我的標題..我如何通過元素獲得價值? – Stack

+0

你讀過我評論的其餘部分了嗎?首先,我專注於獲得正確的元素。那麼'Node.getTextContent()'可能是你的朋友...... –

回答

2

這不是火箭科學。你應該調試你的代碼,探索你可能已經知道的類(Document,NodeList,Node,Element),並理解你的xml結構(更多信息請看here)。實現你的結果的一種方法是:

System.out.println(doc.getChildNodes().item(0).getTextContent());