我花了几个小时寻找解决方案,但现在我需要你的帮助。可能你会开玩笑说我,但是......无论如何。 当xpath匹配crtiteria值= bnb
时,我想获取坐标和其他一些信息我尝试了语法//数据/值[' bnb'] / ancestor :: Point / coordinates [text()],没有结果。
<Placemark xmlns="">
<name><![CDATA[Malcesine]]></name>
<Point>
<coordinates>10.8103913069,45.7645853643</coordinates>
</Point>
<ExtendedData>
<Data name="tournumber">
<value>1</value>
</Data>
<Data name="guidename">
<value>Lake Garda</value>
</Data>
<Data name="category">
<value>numeration</value>
</Data>
<Data name="category">
<value>bnb</value>
</Data>
<Data name="WayPointNumber">
<value>3</value>
</Data>
</ExtendedData>
</Placemark>
<Placemark xmlns="">
<name><![CDATA[Gelateria Cento per cento]]></name>
<Point>
<coordinates>10.8087927103,45.7659774682</coordinates>
</Point>
<ExtendedData>
<Data name="tournumber">
<value>1</value>
</Data>
<Data name="guidename">
<value>Lake Garda</value>
</Data>
<Data name="WayPointNumber">
<value>3</value>
</Data>
</ExtendedData>
</Placemark>
提前谢谢
答案 0 :(得分:1)
不要尝试使用ancestor::
重新启动树,而是将谓词放在Placemark
上...
//Placemark[ExtendedData/Data/value='bnb']/Point/coordinates
大多数情况下,直接创建路径到路径然后添加谓词进行过滤更容易。所以你要从//Placemark/Point/coordinates
开始。然后将其缩小到Placemark
,其ExtendedData/Data/value
等于bnb
。