Android - 使用JSOUP导出子节点的父节点

Android - Derive the parent node of a child node using JSOUP

我必须更改网页的 html 代码才能在我的 Android 应用程序上显示它。这是我的情况:

<html>
    <div class="something">
         <a class="inner_something">
             <span class="title">Titolo1</span>
         </a>
    </div>

    <div class="something">
          <a class="inner_something">
             <span class="title">Titolo2</span>
         </a>
    </div>
</html>

我想删除包含其中的 div 和包含 text= Titolo2 的 span。我该怎么做?

是的,你可以用 Jsoup 来做:

String html = "<html>\n"
            + "    <div class=\"something\">\n"
            + "         <a class=\"inner_something\">\n"
            + "             <span class=\"title\">Titolo1</span>\n"
            + "         </a>\n"
            + "    </div>\n"
            + "\n"
            + "    <div class=\"something\">\n"
            + "          <a class=\"inner_something\">\n"
            + "             <span class=\"title\">Titolo2</span>\n"
            + "         </a>\n"
            + "    </div>\n"
            + "</html>";

Document doc = Jsoup.parseBodyFragment(html);
doc.select("div:has(a:has(span:contains(Titolo2)))").first().remove();

System.out.println(doc);

要将已处理的 HTML 文档加载到您的 WebView,请执行:

 myWebView.loadData(doc.toString(), "text/html", "UTF-8");

您也可以 tweak the selector (doc.select("div.something");) 到 select 并删除您想要的内容。

在你的情况下,这有点棘手:你必须 select 基于内容,所以使用 :contains(text).


要计算某个 class 的 div 的数量,请执行以下操作:

Elements divs = doc.select("div.someclass");
int count = divs.size();

将为您提供 class someclass.

的 div 数量