2010-12-21 100 views
0
<amount currency="USD">1000500</amount> 

在解析上面的字符串我只得到屬性值。當我試圖讓節點值空指針異常獲取節點值異常

爲獲得使用提前

NodeList amountList= estimateElement.getElementsByTagName("amount"); 
Element amtElement= (Element)amountList.item(0); 
String amount=amtElement.getFirstChild().getnodevalue() 

感謝節點值

阿斯旺

+1

@Andreas_D:你改變了這個問題嗎?爲什麼? – thejh 2010-12-21 12:57:09

+0

@Thejh:Andreas修復了XML和代碼的顯示。 – 2010-12-21 13:19:52

+0

沒有什麼嚴重的 - 如果我們想要顯示xml/html片段,我們*在這些行上使用代碼格式,否則標籤不會顯示。點擊「編輯」後的鏈接到[更改歷史記錄](http://stackoverflow.com/posts/4499397/revisions)。 – 2010-12-22 05:27:28

回答

0

請試試這個。我認爲它是真實的:

NodeList list = estimateElement.getElementsByTagName("amount").item(0).getChildNodes(); 
Node node = (Node) list.item(0); 

String value = node.getNodeValue(); 

來源:DOM parser

+0

我收到空指針異常 – Aswan 2010-12-21 13:15:37

-1

嘗試使用getTextContent()方法:

NodeList amountList= estimateElement.getElementsByTagName("amount"); 
Element amtElement= (Element)amountList.item(0); 
String amount=amtElement.getTextContent(); 

請參閱here瞭解更多信息。

+0

嗯。如果你告訴我們你實際使用的DOM解析器實現可能會有所幫助...... – 2010-12-21 13:21:59

+0

org.w3c.dom這個 – Aswan 2010-12-21 13:25:59

+0

這不是實現。這是一個實現實現的接口(顯然不管你使用的是什麼實現都不遵守)。看到這個:http://download.oracle.com/javase/6/docs/api/org/w3c/dom/package-summary.html「提供DOM接口」 – 2010-12-21 13:29:25

0
Element amtElement= (Element)amountList.item(0); 

似乎是你的元素 - 那你爲什麼要調用getFirstChild()?

試試這個:

String amount=amtElement.getnodevalue() 

你檢查出JDOM?它有一個很好的文檔,易於使用。

+1

根據文檔getNodeValue爲元素返回null。每個文檔中他所做的實際上看起來都是正確的。 – 2010-12-21 13:01:05

+0

你可以發佈一個鏈接到文檔..你使用哪個解析器? – Stephan 2010-12-21 13:03:54

+0

我假設它是這樣的:http://download.oracle.com/javase/1.4.2/docs/api/org/w3c/dom/Node.html – 2010-12-21 13:05:29