我想循环浏览这些结果(现在有2个,但在某些情况下最多可能有100个)。
当我在<doc>
节点内找到国家/地区代码的特定值匹配时,我想从同一个<doc>
节点中选择纬度和经度值。
e.g。当我搜索国家/地区代码值“US”时,我想返回值-79.0236
和35.1379
,分别是经度和纬度。
我正在尝试在ASP.NET中将XML加载到XMLDocument变量objXML
中。
我知道如何选择国家/地区代码,但不知道如何获取相关的纬度和经度节点。
objXML.SelectSingleNode("//response/result/doc/str[@name='US']").InnerText
<response>
<lst name="responseHeader">
<int name="status">0</int>
<int name="QTime">3</int>
<lst name="params">
<str name="facet">false</str>
<str name="fl">id,geonameid,title,latitude,longitude,countrycode</str>
<str name="indent">off</str>
<str name="start">0</str>
<str name="q">title_search:*nijmegen*</str>
<str name="rows">10</str>
<str name="defType">lucene</str>
</lst>
</lst>
<result name="response" numFound="2" start="0">
<doc>
<str name="countrycode">US</str>
<str name="title">Nijmegen</str>
<str name="longitude">-79.0236</str>
<str name="geonameid">4482161.0</str>
<str name="latitude">35.1379</str>
</doc>
<doc>
<str name="countrycode">NL</str>
<str name="title">nijmegen</str>
<str name="longitude">5.85278</str>
<str name="geonameid">2750053.0</str>
<str name="latitude">51.8425</str>
</doc>
</result>
</response>
答案 0 :(得分:1)
我不认为你的XPath会起作用,没有带有@name ='US'的str元素。但是使用Xpath 2.0,您可以尝试:
//response/result/doc/str[@name="countrycode"][.='US']/../(str[@name="longitude"] | str[@name="latitude"])