簡體   English   中英

如何查找兄弟索引小於x且大於y的元素

[英]How to find elements whose sibling index is less than x and greater than y

我有一些元素電子新聞 在通過CssQuery查找索引之后,我必須選擇索引小於y且大於x的兄弟元素;

Elements lines = eNews.select("div.clear");

int x = lines.get(0).elementSiblingIndex();
int y = lines.get(1).elementSiblingIndex();

Elements tNews = eNews.getElementsByIndexGreaterThan(x) 
                 ?AND? 
                 eNews.getElementsByIndexLessThan(y)

這是一些示例代碼。 我想從第一個和第二個<div class="clear></div>之間的html標簽中提取文本

<div class="aktualnosci">

 <div class="zd">
  <a href="/Data/Thumbs/ODAweDYwMA,dsc_0458.jpg" title="" rel="lightbox">
   <img src="/Data/Thumbs/dsc_0458.jpg"/>
  </a>
  <p class="show"></p>
 </div>
 <h3>Awanse</h3>
 <div class="data">
  <img alt="" src="/Themes/kalendarz-ico.gif">
2013-11-18 12:26
 </div>

 <!--Start tag-->
 <div class="clear"></div>

 <!--Tags to extract-->
 <p class="gr">W związku z Narodowym Świętem Niepodległości ....</p>
 <p style="text-align: justify">W zeszły p....</p>
 <p style="text-align: justify">OISW Kraków</p>

 <!--End tag-->
 <div class="clear"></div>
 <div class="slider">
  <span class="slide-left"></span>
  <span class="slide-right"></span>
 </div>
</div>

您可以使用div.clear ~ :gt(1):lt(4)這樣的選擇器div.clear ~ :gt(1):lt(4)

例如:

Elements tNews = eNews.select("div.clear ~ :gt(1):lt(4)");

請參閱此示例選擇器文檔 (如果不知道您的輸入HTML和您想要提取的數據,那么您可以嘗試實現這一目標,這有點難以實現。)

根據您的編輯進行更新 :如果您無法事先知道索引,有幾種方法可以執行此操作。 下面我得到第一個div,然后積累兄弟元素,直到我們點擊下一個div.clear。 (如果我可以將這種模式化,並將其添加到jsoup,我會想一想。)

Document doc = Jsoup.parse(h);
Element firstDiv = doc.select("div.clear").first();
Elements news = new Elements();
Element item = firstDiv.nextElementSibling();
while (item != null && !(item.tagName().equals("div") && item.className().equals("clear"))) {
    news.add(item);
    item = item.nextElementSibling();
}

System.out.println(String.format("Found %s items", news.size()));
for (Element element : news) {
    System.out.println(element.text());
}

輸出:

Found 3 items
W związku z Narodowym Świętem Niepodległości ....
W zeszły p....
OISW Kraków

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM