我正在开发一个项目,只有在子元素中存在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>
答案 0 :(得分:2)
这个XPath,
//li[.//a/@title]/text()[last()]
将返回具有li
属性的后代a
的{{1}}元素的最后一个文本节点子元素:
@title
按要求。
信用:Allan每个有用的建议简化(1999)
到[.//a[@title]]
。