选择父节点的前 4 个子节点(相同属性)



如何选择具有3个以上子节点的前4个子节点(相同的属性(,这些子节点也具有相同的属性,我想选择?

我已经尝试过这段代码,但它不起作用:-

//div[@class='content-page minified']/*[self::h2 or p[:2]]

我的代码:

<div class = "content-page minified">
<h2> Company Description </h2>
<p>...</p>
<p>...</p>
<p>...</p>
<p>...</p>
<h2> Mission Description</h2>
<p>...</p>
<ul>...</ul>
<p>...</p>
<h2>Requirements</hs>
<ul>...</ul>
<a class="my child class" href="#">...</a>
<div class="my second child class" href="#">...</div>
</div>

我希望同时选择<h2>和前 3 个<p>标签。

要使用 lxml 获取第一个<h2>标签之后的前两个<p>标签,请尝试

import lxml.html
str = """
<div class = "content-page minified">
<h2> Company Description </h2>
<p>...</p>
<p>...</p>
<p>...</p>
<p>...</p>
<h2> Mission Description</h2>
<p>...</p>
<ul>...</ul>
<p>...</p>
<h2>Requirements</hs>
<ul>...</ul>
<a class="my child class" href="#">...</a>
<div class="my second child class" href="#">...</div>
</div>
"""
h= tree.xpath("//div[@class='content-page minified']/*['h2'][1]/following-sibling::p[position()<3]")

最新更新