如何构造一个 xpath 表达式,在该表达式中,我希望在 <p> 元素之后获取 <p> 元素,该元素带有一个子 <strong> 元素,其文本为“关于此事件:”。
换句话说,什么路径表达式会给我一个“<p>”元素,在 <P> 之后有一个“Hello”文本,下面是 <Strong> 文本……</p>
<p>
<strong>About this event:</strong>
…
</p>
<p>Hello</p>
? -
如何构造一个 xpath 表达式,在该表达式中,我希望在 <p> 元素之后获取 <p> 元素,该元素带有一个子 <strong> 元素,其文本为“关于此事件:”。
换句话说,什么路径表达式会给我一个“<p>”元素,在 <P> 之后有一个“Hello”文本,下面是 <Strong> 文本……</p>
<p>
<strong>About this event:</strong>
…
</p>
<p>Hello</p>
? -
//p[strong[.='About this event:']]/following-sibling::p
或者
//p[strong[.='About this event:']]/following-sibling::p[.='Hello']
试试这个:
//p[normalize-space(strong)='About this event:']/following-sibling::p
p
您还可以通过添加以下内容将其缩小到第一个[1]
:
//p[normalize-space(strong)='About this event:']/following-sibling::p[1]
我相信这应该是可行的。这是 Perlxpath
工具的输出:
so zacharyyoung$ xpath so.xml '//p[strong = "About this event:"]/following-sibling::p[1]'
Found 1 nodes:
-- NODE --
<p>Hello</p>
XPath 是//p[strong = "About this event:"]/following-sibling::p[1]