我正在使用XPath查询HTML网站,到目前为止效果非常好,但是现在我遇到了一个(砖)墙而无法找到解决方案: - )
html看起来像这样:
<ul>
<li><a href="">Text1<span>AnotherText1</span></a></li>
<li><a href="">Text2<span>AnotherText2</span></a></li>
<li><a href="">Text3<span>AnotherText3</span></a></li>
</ul>
我想选择“TextX”部分,但不是<span></span>
中的AnotherTextX部分
到目前为止,我无法提出任何(纯)XPath解决方案(在我的设置中,我很遗憾需要一个纯XPath解决方案。
这会选择我想要的东西,但会产生“TextXAnotherTextX”,我只需要“TextX”。
/ul/li/a
任何提示? : - )
答案 0 :(得分:2)
这将为您提供<a>
的第一个直接文本节点子项:
/ul/li/a/text()[1]
这会让你任何直接文本节点子节点(单独):
/ul/li/a/text()
上述两项都会返回"TextX"
,但如果你有:
<li><a href="">Text4<span>AnotherText3</span>TrailingText</a></li>
然后后者将返回:["Text4", "TrailingText"]
,而前者仅返回"Text4"
。
您的表达式/ul/li/a
获取字符串值<a>
,该值定义为<a>
所有子项的字符串值的串联,因此您获得"TextXAnotherTextX"