【问题标题】:jsoup remove a classjsoup 删除一个类
【发布时间】:2016-01-17 10:33:35
【问题描述】:

使用 jsoup select 我设法提取了以下 html。我正在尝试获取 <a id="dd_start"></a><a id="dd_end"></a> 之间的所有 html 代码。

我使用obj.first().getElementsByClass("div.dd_outer").remove() 没有运气。 有什么建议么?

<div class="entry-content" itemprop="text"> 
<a id="dd_start"></a>
<p><a href="http://blablabla.com/2016/01/16/blablabla/icon-2/#main" rel="attachment wp-att-21"><img class="size-full wp-image-21501 aligncenter" src="http://blablabla.com/wp-content/uploads/16/01/google1.jpg" alt="google-icon" width="100%"></a></p> 
<p>blablabla.<br> <span id="more-21499"></span><br> blablabla.</p> 
<p>blablabla <a href="https://blablabla.com/blablabla" target="_blank">blablabla</a>. </p> 
<a id="dd_end"></a>
<div class="dd_outer">
 <div class="dd_inner">
   <div id="dd_ajax_float">
     <div class="dd_button_v">
     </div>
   </div> 
 </div>
</div>

【问题讨论】:

  • 我不太确定您要删除 HTML 的哪一部分 - 您能澄清一下吗?不过像myDocument.select("div.dd_outer").first().remove() 这样的东西应该可以解决问题。
  • 理想情况下,我想选择 之间的所有内容
  • 检查this,不过您需要调整答案。

标签: android jsoup


【解决方案1】:

这适用于您发布的 sn-p。您可能需要进行一些更改以处理极端情况、错误等。

public static void main(String[] args) throws Exception {
    String html = new String(Files.readAllBytes(Paths.get("input.html")));
    Document doc = Jsoup.parse(html);

    Elements section = new Elements();
    Element sibling = doc.getElementById("dd_start").nextElementSibling();
    do {
        section.add(sibling);
        sibling = sibling.nextElementSibling();
    } while(!sibling.id().equals("dd_end"));

    System.out.println(section);
}

至于删除某个部分的问题,您可以这样做:

Document doc = Jsoup.parse(html);
doc.select("div.dd_outer").first().remove();
System.out.println(doc);

这将从您的 Document 对象中删除该部分。注意在remove() 之前调用的first()。这个很重要。您想调用Elementremove(),这是first() 返回的内容。这将从parentNode 中删除元素,从而影响Document 对象。如果不打电话first()改成这个

doc.select("div.dd_outer").remove();

您将调用Elementsremove(),这是select() 返回的内容。这只是一个集合(各种列表包装器)。因此,如果您调用remove(),您将影响select() 而不是Document 的结果。因此,如果您尝试打印 doc 变量,您会看到您删除的内容仍然存在。

【讨论】:

  • 很高兴我能帮上忙。玩得开心
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多