Jsoup:获取某个元素之前的所有元素/删除某个元素之后的所有元素 [英] Jsoup: get all elements before a certain element / remove all elements after a certain element

查看:116
本文介绍了Jsoup:获取某个元素之前的所有元素/删除某个元素之后的所有元素的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

假设我有这样的html:

Suppose I have html like this:

<div class="pets">
  <div class="pet">...</div>
  <div class="pet">...</div>
  <div class="pet">...</div>
  <div class="pet">...</div>
  <div class="friends-pets">Your friends have these pets:</div>
  <div class="pet">...</div>
  <div class="pet">...</div>
  <div class="pet">...</div>
  <div class="pet">...</div>
  <div class="pet">...</div>
  <div class="pet">...</div>
</div>

我只希望获得< div class ="friends-pets"> 之前的< div class ="pet"> .有没有办法用Jsoup做到这一点?我知道我可以得到所有这样的宠物:

I want to only get <div class="pet"> that come before <div class="friends-pets">. Is there a way to do it with Jsoup? I know I can get all pets like this:

Element petsWrapper = document.selectFirst(".pets");
Elements pets = petsWrapper.select(".pet");

但是这也将包括额外的宠物.我想知道我是只能选择上面的宠物还是只删除下面的宠物,然后使用该代码?

but that would include the extra pets too. I was wondering if I could only select the above pets or just remove the below pets and then use that code?

推荐答案

注释说明:

Element petsWrapper = document.selectFirst(".pets");
Elements pets = petsWrapper.select(".pet");
// select middle element
Element middleElement = petsWrapper.selectFirst(".friends-pets");
// remove from "pets" every element that comes after the middle element
pets.removeAll(middleElement.nextElementSiblings());
System.out.println(pets);

这篇关于Jsoup:获取某个元素之前的所有元素/删除某个元素之后的所有元素的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆