在 Android Studio 中使用 Jsoup 删除背景图片
Remove Background Image with Jsoup in Android Studio
我使用 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;
} }
谢谢。
查看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;")
我使用 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;
} }
谢谢。
查看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;")