2015-11-04 75 views
0

我有一个这样的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> 

我要选择具有一个em.icon时间孩子在div select target

如何在jsoup中编写选择器?

如果我使用:doc.select(“分区:已(em.icon时间)”),我会得到根元素如下快照: select result

回答

0

我不知道的一种方式获取匹配元素的直接父元素。但是,如果你只是想解决这个特定的问题,那就试试这个选择:

格:有(em.icon时间):不是(:有(格))

我只是简单地添加否定:not(:has(div))以避免将所有父级div取到根。

希望有帮助!

+0

谢谢korpe。有用! – songofhawk

+0

是否知道在哪里可以找到关于这种嵌套表达式的详细文档或示例? – songofhawk

+0

不客气。不幸的是,我现在没有更详细的文件。我通常只会看看http://jsoup.org/cookbook/extracting-data/selector-syntax上的Jsoup文档,然后玩弄,直到找到能够实现这个技巧的选择器和伪选择器的组合。 – korpe