我正在尝试创建一个XPATH,它返回计数高于5的产品的名称。
这是XML:
<?xml version ="1.0" encoding ="UTF -8"?>
<list>
<product>
<name>A</name>
<parts>
<part count="3">X3</part>
<part count="1">Y2</part>
<part count="2">Z6</part >
</parts>
</product>
<product>
<name>B</name>
<parts>
<part count="1">G3</part>
<part count="2">Y6</part>
</parts>
</product>
<product>
<name>C</name>
<parts>
<part count="6">K9</part >
<part count="3">Y6</part>
</parts>
</product>
</list>
我的尝试是:
//name/following-sibling::parts/part[@count>5]
More readable version
/list/product/parts/part[@count>5]
我做的XPATH返回<part count="6">K9</part >
,这部分是正确的,但它不会返回产品的名称。
在这一点上,我甚至不确定我是否应该返回实际名称(在这种情况下是C),如果它甚至可以这样做或者我的方法是正确的。任何意见都欢迎。
答案 0 :(得分:3)
怎么样
//product[parts/part/@count > 5]/name
或
//part[@count > 5]/ancestor::product/name
或
//name[../parts/part/@count > 5]
正如他们所说,有很多方法可以给猫皮肤。
答案 1 :(得分:1)
您可以使用以下xpath实现此目的
/list/product/parts/part[@count>5]/../../name
希望它有所帮助。