XML XPath - 仅在满足子条件时选择父文本

时间:2018-05-28 23:20:53

标签: xml xpath

我正在开发一个项目,只有在子元素中存在title属性时才需要从父元素获取文本而不从后者获取文本。

在下面的示例中,我需要从li元素获取文本“1999”,当且仅当在子锚(li/i/a/@title)中存在title属性时,这是否可能?提前谢谢

这是我最初尝试过的,但这对我的用例不起作用......  //ul/li/text()[last()],也尝试了//ul/li/text()

<ul>
  <li>
      <i>
        <a href="#apples" title="apples">
          Apples
        </a>
      </i> (1999)
  </li>
</ul>

1 个答案:

答案 0 :(得分:2)

这个XPath,

//li[.//a/@title]/text()[last()]

将返回具有li属性的后代a的{​​{1}}元素的最后一个文本节点子元素:

@title

按要求。

信用Allan每个有用的建议简化(1999) [.//a[@title]]