2011-01-22 67 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()相同。

相关问题