如何直接 select 指定 child 的节点

How to select a node which has a specified child directly

我有一个这样的 html 文档:

<div class="jumbotron media">
    <img class="pull-left media-object" >
    <div class="media-body">
        <h2 class="media-heading">xxx</h2>
        <div>
            <em class="icon-time" title="act time"></em> 2015-11-29 14:00 ~ 2015-11-29 18:00
        </div>
        <div class="address">
            <em class="icon-place" title="act place"></em><a target="_blank" href="http://ooo">yyy</a>
        </div>
        <div>
            <em class="icon-statistics" title="act count"></em> zzz</div>
            <div>
                <a alt=""> </a>
            </div>
        </div>
    </div>
</div>

我想要 select 有一个 em 的 div。icon-time child select target

如何在 jsoup 中编写 selector?

如果我使用:doc.select("div:has(em.icon-time)"),我将获得根元素,如下图所示: select result

我不知道有什么方法可以获取匹配元素的直接父元素。但是如果你只想解决这个特定的问题,那么试试这个选择器:

div:has(em.icon-time):not(:has(div))

我只是添加了否定 :not(:has(div)) 以避免将所有父 div 都放到根目录中。

希望对您有所帮助!