我曾经有这种形式;
<li>
<span>name:</span>
<p>Seca </p>
</li>
我正在使用此xpath来获取seca
:
ul/li/span[normalize-space(text())='name:']/following-sibling::p[1]/text())
一切都很好。
现在我没有p
标签。所以我就是这样:
<li>
<span>name:</span>
Seca
</li>
我应该对我的代码进行哪些编辑才能获得seca
现在好吗?
答案 0 :(得分:1)
现在,“Seca”只是li
元素的另一个子元素 - 因此是span
元素的后续兄弟。使用
//ul/li/span[normalize-space(text())='name:']/following-sibling::text()
给你
[EMPTY LINE]
Seca
[EMPTY LINE]
您可能希望排除那些仅限空格的行:
normalize-space(//ul/li/span[normalize-space(text())='name:']/following-sibling::text())
,结果将是
Seca
如果您的实际输入包含更多文本节点,请不要忘记将[1]
添加到表达式中。
请注意,如果实际上没有理由规范化span
的文本内容并仅考虑其直接子文本节点,则表达式可以更容易:
//ul/li[span='name:']/text()[2]