Java Jsoup选择器-如何选择前5个<;p>;内部元素<;部门>;要素

Java Jsoup选择器-如何选择前5个<;p>;内部元素<;部门>;要素,java,jsoup,Java,Jsoup,有一组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&g

有一组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>

a

b

c

d

e

f

h

j

k

我想选择前5个
元素。 请帮忙

从中我们可以了解到:

:lt(n)
:查找同级索引(即其在DOM树中相对于其父级的位置)小于
n的元素;e、 g.
td:lt(3)

因此,根据您的示例,您只需要
选择(“div.abcdefghijk p:lt(5)”)

演示:

String html=“\r\n”+
“a

\r\n”+ “b

\r\n”+ “c

\r\n”+ “d

\r\n”+ “e

\r\n”+ “f

\r\n”+ “h

\r\n”+ “i

\r\n”+ “j

\r\n”+ “k

\r\n”+ ""; Document doc=Jsoup.parse(html); 元素=文件选择(“div.abcdefghijk p:lt(5)”; 用于(元素el:元素){ 系统输出打印项次(el); }
输出:

<p>a</p>
<p>b</p>
<p>c</p>
<p>d</p>
<p>e</p>
<p>a</p>
<p>b</p>
<p>c</p>
<p>d</p>
<p>e</p>
a

b

c

d

e

从中我们可以了解到:

:lt(n)
:查找同级索引(即其在DOM树中相对于其父级的位置)小于
n的元素;e、 g.
td:lt(3)

因此,根据您的示例,您只需要
选择(“div.abcdefghijk p:lt(5)”)

演示:

String html=“\r\n”+
“a

\r\n”+ “b

\r\n”+ “c

\r\n”+ “d

\r\n”+ “e

\r\n”+ “f

\r\n”+ “h

\r\n”+ “i

\r\n”+ “j

\r\n”+ “k

\r\n”+ ""; Document doc=Jsoup.parse(html); 元素=文件选择(“div.abcdefghijk p:lt(5)”; 用于(元素el:元素){ 系统输出打印项次(el); }
输出:

<p>a</p>
<p>b</p>
<p>c</p>
<p>d</p>
<p>e</p>
<p>a</p>
<p>b</p>
<p>c</p>
<p>d</p>
<p>e</p>
a

b

c

d

e


要获得预期结果,请使用第n个子选择器

:nth-child(-n+5)
select("div.abcdefghijk :nth-child(-n+5)")

要获得预期结果,请使用第n个子选择器

:nth-child(-n+5)
select("div.abcdefghijk :nth-child(-n+5)")

如果仍要选择全部,但要对前5个进行特殊处理,请使用(继承自
ArrayList
):

返回此列表中指定的
fromIndex
(包含)和
toIndex
(独占)之间部分的视图

String html=
"" +
“a

b

c

d

e

”+//获取这些 “f

h

i

j

k

”+ ""; Document doc=Jsoup.parse(html); 元素段落=文件选择(“div.abcdefghijk p”); 对于(元素el:paras.subList(0,Math.min(5,paras.size())){ 系统输出打印项次(el); }
输出:

<p>a</p>
<p>b</p>
<p>c</p>
<p>d</p>
<p>e</p>
<p>a</p>
<p>b</p>
<p>c</p>
<p>d</p>
<p>e</p>
a

b

c

d

e


如果仍要选择所有这些,但要对前5个进行特殊处理,请使用(继承自
ArrayList
):

返回此列表中指定的
fromIndex
(包含)和
toIndex
(独占)之间部分的视图

String html=
"" +
“a

b

c

d

e

”+//获取这些 “f

h

i

j

k

”+ ""; Document doc=Jsoup.parse(html); 元素段落=文件选择(“div.abcdefghijk p”); 对于(元素el:paras.subList(0,Math.min(5,paras.size())){ 系统输出打印项次(el); }
输出:

<p>a</p>
<p>b</p>
<p>c</p>
<p>d</p>
<p>e</p>
<p>a</p>
<p>b</p>
<p>c</p>
<p>d</p>
<p>e</p>
a

b

c

d

e