在Android Studio中使用Jsoup删除背景图片

时间:2018-11-02 18:03:19

标签: java android webview jsoup

我使用WebView和Jsoup构建应用程序,以删除具有唯一ID或Class的元素。但是我有一个问题,用Jsoup删除背景图片。这是我用Jsoup删除背景图片的代码。

private class MyAsyncTask extends AsyncTask<Void, Void, Document> {

    @Override
    protected Document doInBackground(Void... voids) {
        String url = "https://www.mywebsite.com/";

        Document document = null;
        try {
            document = Jsoup.connect(url).get();

            document.getElementsByAttribute("url(\"https://www.mywebsite.com/assets/style/lapor/images/body-background.jpg\")").remove();

        } catch (IOException e) {
            e.printStackTrace();
        }
        return document;
    } }

url that i want to remove

谢谢。

1 个答案:

答案 0 :(得分:0)

查看getElementsByAttribute方法中的JavaDoc。它期望属性的名称作为参数,但是您提供了css属性的值。绝对是错的,而且行不通。

此外,Jsoup是一个用于处理HTML的库。这意味着您可以读取,遍历和操作文档的DOM树,但不能查看其样式。我不支持按其样式查询元素。

但是您可以通过以下方式满足您的要求:

  • 查询带有背景图像的元素(但是您需要事先知道需要修改哪些元素)。
  • 向其中添加style属性,以覆盖background-image规则。

对于您提供的情况,替换行时它应该可以工作:

document.getElementsByAttribute("url(\"https://www.mywebsite.com/assets/style/lapor/images/body-background.jpg\")").remove();

...到以下内容:

document.body().attr("style", "background-image: none;")