【发布时间】:2015-09-29 04:02:31
【问题描述】:
对于下面的 xml 文件,我想检索对应于 lat = 53.0337395 的 id 的值,并且在 xml 中有两个 id 的 lat = 53.0337395。如下所示,为了实现这一点,我编写了以下代码,但在运行时我收到#NUMBER cannt be converted into a nodelist
请告诉我如何解决它
String expr0 = "count(//node[@lat=53.0337395]//@id)";
xPath.compile(expr0);
NodeList nodeList = (NodeList) xPath.compile(expr0).evaluate(document,
XPathConstants.NODESET);
System.out.println(nodeList.getLength());
xml:
<?xml version='1.0' encoding='utf-8' ?>
<osm>
<node id="25779111" lat="53.0334062" lon="8.8461545"/>
<node id="25779112" lat="53.0338904" lon="8.846314"/>
<node id="25779119" lat="53.0337395" lon="8.8489255"/>
<tag k="maxspeed" v="30"/>
<tag k="maxspeed:zone" v="yes"/>
<node id="25779111" lat="53x.0334062" lon="8x.8461545"/>
<node id="25779112" lat="53x.0338904" lon="8x.846314"/>
<node id="257791191" lat="53.0337395" lon="8x.8489255"/>
<tag k="maxspeed" v="30x"/>
<tag k="maxspeed:zone" v="yes"/>
</osm>
【问题讨论】:
-
String expr0 = "count(//node[@lat=53.0337395]//@id)";在你的情况下应该返回 2,你说 2 应该是一个 nodeList