有一堆html元素如下:
<div class="abcdefghijk">
<p>a</p>
<p>b</p>
<p>c</p>
<p>d</p>
<p>e</p>
<p>f</p>
<p>h</p>
<p>i</p>
<p>j</p>
<p>k</p>
</div>
Run Code Online (Sandbox Code Playgroud)
我想选择前 5 个<p>元素。请帮忙!
从https://jsoup.org/cookbook/extracting-data/selector-syntax我们可以了解到:
:lt(n): 查找同级索引(即其在 DOM 树中相对于其父级的位置)小于 的元素n;例如td:lt(3)
因此,根据您的示例,您只需要select("div.abcdefghijk p:lt(5)").
演示:
String html = " <div class=\"abcdefghijk\">\r\n" +
" <p>a</p>\r\n" +
" <p>b</p>\r\n" +
" <p>c</p>\r\n" +
" <p>d</p>\r\n" +
" <p>e</p>\r\n" +
" <p>f</p>\r\n" +
" <p>h</p>\r\n" +
" <p>i</p>\r\n" +
" <p>j</p>\r\n" +
" <p>k</p>\r\n" +
"</div>";
Document doc = Jsoup.parse(html);
Elements elements = doc.select("div.abcdefghijk p:lt(5)");
for (Element el : elements){
System.out.println(el);
}
Run Code Online (Sandbox Code Playgroud)
输出:
<p>a</p>
<p>b</p>
<p>c</p>
<p>d</p>
<p>e</p>
Run Code Online (Sandbox Code Playgroud)