繁体   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