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文字列変数で「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 に答える