通过 XPATH 查找没有特定父节点的节点

Posted

技术标签:

【中文标题】通过 XPATH 查找没有特定父节点的节点【英文标题】:Finding a node by that doesn't have specific parent via XPATH 【发布时间】:2018-03-21 14:50:40 【问题描述】:

我想查找名称为“lbl”且文本值为“10”的节点,其父节点不是名称为“Item”的节点

<XML>
  <Cat>
    <Summary>
      <Item>
        <lbl>10</lbl>
    </Item>
    </Summary>        
  </Cat>  
</XML>

这是我的 xpath:

XPathExpression expr = xpath.compile("//lbl[text()='10']//not[parent::Item]")

但它返回一个节点,预期结果不返回任何东西。

【问题讨论】:

【参考方案1】:

你很亲密。正确的是

//lbl[text()='10' and not(parent::Item)]

【讨论】:

以上是关于通过 XPATH 查找没有特定父节点的节点的主要内容,如果未能解决你的问题,请参考以下文章

通过xpath相对节点位置查找元素

Xpath 获取父节点,其中子节点的两个属性具有特定值

python--通过xpath相对节点位置查找元素(续)

XPath 1.0:使用当前节点的父节点的属性值来寻找另一个匹配的节点

使用 DOMDocument PHP 获取 Xpath 父节点?

xpath选择父节点类型不同的子节点