无法获取XML标记值

时间:2013-03-25 21:41:36

标签: java xmldocument

我有以下代码

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)”而是。 我做错了什么?

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:1)

您需要使用getTextContent代替getNodeValue

请阅读此blog post了解详情。

您可以在javadoc部分(或下面的快照)中看到getNodeValue何时有任何意义。 node value in XML parsing