Xpath 在第一个 html 标记之后获取文本



有下一个块

<div class="text">
<h1>head1</h1>
Text1 <br/><br/> text12  <br/><br/> text 13
<h1>head11</h1>
Text11
<h3>head3</h3>
Text2
</div>

如何在第一个 H1 之后获取文本,忽略<br/><br/>

文本1 文本12 文本 13

我使用 Grab Python page = g.doc.select('//div[@class="text"]/h3[1]/follow-sibling::text((]'( 结果是

文本1 文本12 文本 13 文本11 文本2

您可以尝试选择只有一个前面h1兄弟姐妹的text()...

//div[@class='text']/text()[count(preceding-sibling::h1)=1]

另一种选择是尝试使用凯斯方法...

//div[@class='text']/h1[1]/following-sibling::text()[count(.|//div[@class='text']/h1[1+1]/preceding-sibling::text()) = count(//div[@class='text']/h1[1+1]/preceding-sibling::text())]

这是Kayessian方法的一个更好的例子和解释。

最新更新