1

我有以下代码

protected static final String TAG_numFound                  = "numFound";        //
Document street_xmlDoc = GetXMLDocument(street_url);
Element results = street_xmlDoc.getDocumentElement();
//numFound
Node numFoundNode = results.getElementsByTagName(TAG_numFound).item(0);
String numFound = numFoundNode.getNodeValue() + "(" + numFoundNode.getNodeName() + ")";

和以下 XML

<results>
<numFound>1</numFound>
<QTime>66</QTime>
<result>
<distance>0.0</distance>
<name>Agua</name>
</result>
</results>

在 numFound String 变量中,我得到“null(numFound)”,我不明白为什么我没有得到“1(numFound)”。我做错了什么?

4

2 回答 2

2

您可以使用它XPath来获取值,这对于您的代码的未来读者来说可能会更清楚:

    final Document document = //build your document
    final XPath xPath = XPathFactory.newInstance().newXPath();
    final XPathExpression expression = xPath.compile("//numFound/text()");
    final Number output = (Number) expression.evaluate(document, XPathConstants.NUMBER);
    System.out.println(output);

输出:

1.0
于 2013-03-25T21:57:11.707 回答
1

您需要使用getTextContent而不是getNodeValue.

阅读这篇博文了解更多信息。

您可以在这个javadoc部分(或下面的快照)中 看到什么时候getNodeValue有任何意义。XML解析中的节点值

于 2013-03-25T21:52:37.253 回答