如何从XPATH中检索名称

时间:2015-01-11 12:22:53

标签: xml xpath

我正在尝试创建一个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),如果它甚至可以这样做或者我的方法是正确的。任何意见都欢迎。

2 个答案:

答案 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

希望它有所帮助。