java - 无法获取 XML 标记值

标签 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 字符串变量中我得到“null(numFound)” 我不明白为什么我没有得到“1(numFound)”。 我做错了什么?

最佳答案

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

    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

关于java - 无法获取 XML 标记值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15625335/

相关文章:

javascript - 从 xmldocument 创建 javascript 文档

c# - DocumentElement.AppendChild 抛出未设置到对象实例的对象引用

c# - 如何检查 XML 节点是否存在于另一个节点的子节点中?

java - 您如何配置 Spring MVC @PathVariables 以接受包含破折号的字符串?

java - 如何配置 axis2-java2wsdl-maven-plugin 使用多个类生成一个 wsdl?

java - Apache Spark 驱动内存

java - 在 WildFly 10 中部署 CXF 3.1.7

c# - 使用 XmlDocument 向元素添加命名空间的正确方法

javascript - loadXml 在 Windows 10 上返回未定义