xpath:element在final之间没有特定的父级

时间:2017-06-18 10:23:30

标签: html xml xpath

我尝试选择具有属性名称itemprop的所有元素,并且whith具有属性itemtype = http://schema.org/Product的任何级别父级,除了位于具有任何其他属性itemtype的节点的元素。

示例:

<div itemtype = "http://schema.org/Product" >
  <div itemtype = "http://schema.org/BreadcrumbList" >
    <div itemprop = "name" > A </div>
    <div itemprop = "price" > B </div>
    <div itemtype = "http://schema.org/ListItem" >
      <div itemprop = "description"> C </div>
    </div>
  </div>
  <div itemprop = "name" > D </div>
  <div>
    <div>
      <div itemprop = "price" > E </div>
    </div>
  </div>
</div>

我只需要D和E元素,但不需要A,B,C。 我尝试过像这样的事情:

//*[normalize-space(@itemtype) = 'http://schema.org/Product']/descendant::*[not(descendant-or-self::*[@itemtype])][@itemprop]

此字符串完全无效,我的其他尝试也未排除A,B和C元素。

1 个答案:

答案 0 :(得分:0)

尝试使用以下表达式,该表达式允许获取具有仅具有itemtype值的属性"http://schema.org/Product"的祖先的元素

//div[@itemprop and count(ancestor::*[@itemtype='http://schema.org/Product'])=count(ancestor::*[@itemtype])]