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

时间:2019-08-13 09:06:31

标签: xpath

如何选择父节点中具有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>标签。

1 个答案:

答案 0 :(得分:0)

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

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]")
相关问题