1

如何构造一个 xpath 表达式,在该表达式中,我希望在 <p> 元素之后获取 <p> 元素,该元素带有一个子 <strong> 元素,其文本为“关于此事件:”。

换句话说,什么路径表达式会给我一个“<p>”元素,在 <P> 之后有一个“Hello”文本,下面是 <Strong> 文本……</p>

<p>
    <strong>About this event:</strong>
    …
</p>
<p>Hello</p>

? -

4

3 回答 3

2
//p[strong[.='About this event:']]/following-sibling::p

或者

//p[strong[.='About this event:']]/following-sibling::p[.='Hello']
于 2012-05-01T17:08:33.843 回答
1

试试这个:

//p[normalize-space(strong)='About this event:']/following-sibling::p

p您还可以通过添加以下内容将其缩小到第一个[1]

//p[normalize-space(strong)='About this event:']/following-sibling::p[1]
于 2012-05-01T17:04:16.870 回答
0

我相信这应该是可行的。这是 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]

于 2012-05-01T17:08:33.670 回答