我正在使用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标记。那么,请你帮我弄清楚这个选择器出了什么问题
答案 0 :(得分:1)
这个完美无缺
Elements innerMostDivs = doc.select("div:not(:has(div))");
试试online
div:not(:has(div))
答案 1 :(得分:0)
如果您只想要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
。