簡體   English   中英

如何使用jsoup選擇html文檔的葉標記

[英]How to select leaf tags of an html document using jsoup

我正在使用jsoup來解析一個html文檔。 我需要提取所有子div元素。 這基本上是沒有嵌套div標簽的div標簽。 我在java中使用以下內容來提取div標簽,

Elements bodyTag = document.select("div:not(div>div)"); 

這是一個例子:

<div id="header">
     <div class="container">
         <div id="header-logo"> 
         <a href="/" title="mekay.com">
             <div id="logo">
             </div> </a>
        </div>
        <div id="header-banner">
            <div data-type="ad" data-publisher="lqm.j2ee.site" data-zone="ron">
            </div>
        </div>
     </div>
</div>

我只需要提取以下內容:

 <div id="logo">
 </div>
 <div data-type="ad" data-publisher="lqm.j2ee.site" data-zone="ron">
 </div>

相反,上面的代碼片段返回所有div標簽。 那么,請你幫我弄清楚這個選擇器有什么問題

這個是完美的工作

Elements innerMostDivs = doc.select("div:not(:has(div))");

在線嘗試

  • 添加你的html文件
  • 將css查詢添加為div:not(:has(div))
  • 檢查結果元素

如果你只想要沒有任何孩子的div葉子,那么使用它

Elements emptyDivs = document.select("div:empty");

你現在使用的選擇器意味着fetch me all the divs that are not direct children of another div 它帶來了第一個父div是正常的,因為div id="header"不是div的直接子節點。 最有可能的是它的父母是body

暫無
暫無

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

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