XPath比较新,但真的需要帮助,感谢你的手。
我有以下XML文件:
<div id="current">
<b> Current Data Ratio:</b>
17.35
<span class="neg">-0.23 (-0.84%)</span>
<div id="timestamp">4:29 pm EST, Fri Jan 9</div>
</div>
我想获得数据值17.35。我的XPath代码如下:
Node external_node = (Node) xPath.evaluate("//div[@id='current']", xmlDocument, XPathConstants.NODE);
if(null != external_node) {
NodeList nodeList = external_node.getChildNodes();
for (int i = 0; null!=nodeList && i < nodeList.getLength(); i++) {
Node internal_node = nodeList.item(i);
if(internal_node.getNodeType() == Node.ELEMENT_NODE)
System.out.println(nodeList.item(i).getNodeName() + " : " + internal_node.getFirstChild().getNodeValue());
}
}
然后我得到的是:
b : Current Data Ratio:
span : -0.23 (-0.84%)
div : 4:29 pm EST, Fri Jan 9
无法获得数据17.35。我将Node类型更改为Node.TEXT_NODE,如下所示:
if(internal_nod.getNodeType()== Node.TEXT_NODE
然后我没有得到任何回报。然后我尝试使用text()函数,似乎也无济于事。需要任何帮助。答案 0 :(得分:0)
鉴于此输入:
<div id="current">
<b> Current Data Ratio:</b>
17.35
<span class="neg">-0.23 (-0.84%)</span>
<div id="timestamp">4:29 pm EST, Fri Jan 9</div>
</div>
选择具有此XPath表达式//div[@id='current']/text()
的节点会产生所需结果17.35