2011-01-22 40 views
3

getTextContent()不是一個可識別的函數。 getNodeValue()對字符串工作正常,但任何時候我嘗試使用getNodeValue()解析數字時,它都會返回null!org.w3c.dom.Node Android版本小於2.2

如何使用此類從XML解析Long?

回答

0

如果像你說的「getNodeValue()工作正常字符串」,那麼也不應該做預防:

Long l = Long.getLong(node.getNodeValue()); 

注意,getNodeValue()將始終返回String應然後手動轉換爲數字類型。

另外 - 你確定你正在解析一個正確的節點(持有所需的長期價值)?

3

您需要向下導航到文本節點。舉例來說,像這樣的東西:

<val>10000</val> 

解析XML樹有,反過來,先後爲「10000」的子節點的文本標籤中的元素節點。典型的習慣用法

valNode.getFirstChild().getNodeValue() 
6

這一現象的根本原因是getTextContent()方法是W3C DOM 3級方法;請參閱DOM級別3核心規範的changes部分。

Node接口有兩個新屬性Node.baseURI和Node.textContent。 ...

getTextContent()是新屬性的獲取者。

(據推測,舊版本的Android不實現DOM 3級的API。)

getTextContent()的行爲是有點在一般情況下,複雜的;請參閱textContext attribute的規格。在目標節點是具有(僅)文本內容的元素的簡單情況下,node.getTextContext()node.getFirstChild().getNodeValue()相同。

相關問題