Удалить фоновое изображение с помощью Jsoup в Android Studio - PullRequest
0 голосов
/ 02 ноября 2018

Я создаю приложения с 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 голосов
/ 23 января 2019

Посмотрите на JavaDoc из getElementsByAttribute метода. Он ожидает имя атрибута в качестве параметра, но вместо этого вы указали значение свойства 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;")
...