J'ai utilisé le [selector] de jsoup (https://jsoup.org/apidocs/org/jsoup/select/Selector.html) pour plus de commodité, mais le comportement de: nth-child est étrange, donc je l'ai vérifié (trop) Je ne l'ai pas vérifié) et ses contre-mesures. ** J'ai beaucoup écrit, mais j'ai pu faire ce que je voulais faire avec ": lt (n)" au lieu de ": nth-child (-n + m)". (Description à la fin) **
Environnement de développement: Eclipse pleiades 4.6.3 Java : Java8 jsoup: 1.9.2 (* 1.10.3 est le même événement)
Je veux obtenir seulement les 5 premiers des multiples éléments que j'ai obtenus avec le sélecteur
Par exemple, si vous souhaitez obtenir uniquement la balise a dans les éléments suivants.
<div class="list">
<ul>
<li><a href="aaa">Lien 1</a></li>
<li><a href="aaa">Lien 2</a></li>
<li><a href="aaa">Lien 3</a></li>
<li><a href="aaa">Lien 4</a></li>
<li><a href="aaa">Lien 5</a></li>
<li><a href="aaa">Lien 6</a></li>
<li><a href="aaa">Lien 7</a></li>
<li><a href="aaa">Lien 8</a></li>
<li><a href="aaa">Lien 9</a></li>
<li><a href="aaa">Lien 10</a></li>
</ul>
</div>
La spécification est la suivante
div.list> ul > li > a
Dans ce cas, les 20 cas seront couverts. Parmi ceux-ci, seuls les 5 premiers cas seront écrits comme suit.
div.list> ul > li:nth-child(-n+5) > a
Si vous spécifiez ce qui précède, pour une raison quelconque, "5e et suivant" sera la cible. En d'autres termes, 6 éléments du «Lien 5» au «Lien 10» sont ciblés.
Cependant, en spécifiant ce qui suit, vous pouvez cibler les «5 premiers cas».
div.list> ul > li:not(:nth-child(-n+6)) > a
Le point est
-Enclencher: nième enfant avec: pas --N + 6 au lieu de -n + 5
est.
Je ne sais pas pourquoi cela fonctionne, mais cela semble se comporter comme ça.
D'après les commentaires que j'ai reçus, c'était facile à utiliser ": lt ()" ...
div.list> ul > li:not(:nth-child(-n+6)) > a
ne pas
div.list> ul > li:lt(5) > a
Vous pouvez répondre à votre demande avec.
J'ai fait un bruit m (_ _) m
Recommended Posts