我有以下xml文档。我想提取名为='Category'和value ='bb'的子数据的值,其后跟兄弟名称='WayPointNumber'。 我尝试过这样的事情:
//Data[[@name='Category' and ./value='bb'] and [/following-sibling::*[(@name='WayPointNumber')]]]/ExtendedData/Data[5]
但我总是得到一个错误:错误 - 无法评估XPath表达式:路径表达式中的意外标记“[”
语法是否正确?
<root>
<ExtendedData>
<Data name="Tournumber">
<value>1</value>
</Data>
<Data name="Guide">
<value>lago di garda</value>
</Data>
<Data name="Category">
<value>Numbering</value>
</Data>
<Data name="Category">
<value>bb</value>
</Data>
<Data name="WayPointNumber">
<value>13</value>
</Data>
<Data name="Type">
<value>POI</value>
</Data>
<Data name="Hashlink">
<value>1_822606</value>
</Data>
<Data name="LocalId">
<value>822606</value>
</Data>
</ExtendedData>
<ExtendedData>
<Data name="Tournumber">
<value>1</value>
</Data>
<Data name="Guide">
<value>lago di garda</value>
</Data>
<Data name="Category">
<value>Numbering</value>
</Data>
<Data name="WayPointNumber">
<value>14</value>
</Data>
<Data name="Type">
<value>POI</value>
</Data>
<Data name="Hashlink">
<value>1_822557</value>
</Data>
<Data name="LocalId">
<value>822557</value>
</Data>
</ExtendedData>
</root>
答案 0 :(得分:0)
我想提取名为=&#39;类别&#39;的子数据的值。和价值=&#39; bb&#39;以下兄弟名称=&#39; WayPointNumber&#39;。
我认为你这太复杂了。使用以下路径表达式:
/root/ExtendedData/Data[@name = 'Category' and value = 'bb' and following-sibling::Data[@name = 'WayPointNumber']]
评估XPath表达式,例如使用bash shell中的xpath
命令:
$ xpath a.xml '/root/ExtendedData/Data[@name = "Category" and value = "bb" and following-sibling::Data[@name = "WayPointNumber"]]'
然后,结果将是:
Found 1 nodes:
-- NODE --
<Data name="Category">
<value>bb</value>
</Data>