Ich habe aus Bequemlichkeitsgründen den [Selektor] von jsoup (https://jsoup.org/apidocs/org/jsoup/select/Selector.html) verwendet, aber das Verhalten von: n-tes Kind ist seltsam, also habe ich es überprüft (zu viel). Ich habe es nicht überprüft) und seine Gegenmaßnahmen. ** Ich habe viel geschrieben, aber ich konnte mit ": lt (n)" anstelle von ": nth-child (-n + m)" machen, was ich wollte. (Beschreibung am Ende) **
Entwicklungsumgebung: Eclipse-Plejaden 4.6.3 Java : Java8 jsoup: 1.9.2 (* Gleiches Ereignis in 1.10.3)
Ich möchte nur die ersten 5 der mehreren Elemente erhalten, die ich mit dem Selektor erhalten habe
Zum Beispiel, wenn Sie nur das a-Tag in den folgenden Elementen erhalten möchten.
<div class="list">
<ul>
<li><a href="aaa">Link 1</a></li>
<li><a href="aaa">Link 2</a></li>
<li><a href="aaa">Link 3</a></li>
<li><a href="aaa">Link 4</a></li>
<li><a href="aaa">Link 5</a></li>
<li><a href="aaa">Link 6</a></li>
<li><a href="aaa">Link 7</a></li>
<li><a href="aaa">Link 8</a></li>
<li><a href="aaa">Link 9</a></li>
<li><a href="aaa">Link 10</a></li>
</ul>
</div>
Die Spezifikation ist wie folgt
div.list> ul > li > a
In diesem Fall werden alle 20 Fälle abgedeckt. Von diesen werden nur die ersten 5 Fälle wie folgt geschrieben.
div.list> ul > li:nth-child(-n+5) > a
Wenn Sie oben angeben, ist aus irgendeinem Grund "5. und nachfolgende" das Ziel. Mit anderen Worten, 6 Elemente von "Link 5" bis "Link 10" werden als Ziel ausgewählt.
Wenn Sie jedoch Folgendes angeben, können Sie auf die "ersten 5 Fälle" abzielen.
div.list> ul > li:not(:nth-child(-n+6)) > a
Der Punkt ist
-Einschließen: n-tes Kind mit: nicht --N + 6 statt -n + 5
ist.
Ich weiß nicht, warum das funktioniert, aber es scheint sich so zu verhalten.
Aus den Kommentaren, die ich erhalten habe, war es einfach zu verwenden ": lt ()" ...
div.list> ul > li:not(:nth-child(-n+6)) > a
nicht
div.list> ul > li:lt(5) > a
Sie können Ihre Anfrage mit erfüllen.
Ich machte ein Geräusch m (_ _) m
Recommended Posts