Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用jsoup将自定义css添加到html代码中_Java_Jquery_Android_Css_Jsoup - Fatal编程技术网

Java 使用jsoup将自定义css添加到html代码中

Java 使用jsoup将自定义css添加到html代码中,java,jquery,android,css,jsoup,Java,Jquery,Android,Css,Jsoup,我正在开发一个Android应用程序,它加载一个HTML页面并在网络视图中显示。 问题是我想添加我的自定义css(加载的HTML没有任何css或指向css的链接)。如何使用jsoup将自定义css添加到HTML代码中? 我不能修改html。 那么webview以后如何打开它呢? 谢谢最简单的方法可能是在HTML文本上搜索和替换以插入自定义样式,然后再将其加载到网络视图中。我在我的应用程序BBC News中这样做是为了稍微重新设置新闻文章页面的样式。我的代码如下所示: text = text.re

我正在开发一个Android应用程序,它加载一个HTML页面并在网络视图中显示。 问题是我想添加我的自定义css(加载的HTML没有任何css或指向css的链接)。如何使用jsoup将自定义css添加到HTML代码中? 我不能修改html。 那么webview以后如何打开它呢?
谢谢

最简单的方法可能是在HTML文本上搜索和替换以插入自定义样式,然后再将其加载到
网络视图中。我在我的应用程序BBC News中这样做是为了稍微重新设置新闻文章页面的样式。我的代码如下所示:

text = text.replace("</head>",
        "<style>h1 {font-size: x-large;} h1, div.date, div.storybody, img {margin:4px; padding:4px; line-height:1.25;}</style></head>");
text=text.replace(“,
h1{font size:x-large;}h1,div.date,div.storybody,img{margin:4px;padding:4px;线宽:1.25;}”);

查看我如何搜索和替换末尾的
head
标记(包括替换段中我自己的
标记)。这确保了新代码段在页面上的进度正确。

有几种方法可以在html中包含ccs

如果您将其存储为外部文件,我将使用:

<head><link rel="stylesheet" type="text/css" href="mystyle.css" /></head>

如果要将其放置在html文件中:

<head>
<style type="text/css">
hr {color:sienna;}
p {margin-left:20px;}
body {background-image:url("images/back40.gif");}
</style>
</head>

hr{color:sienna;}
p{左边距:20px;}
正文{背景图像:url(“images/back40.gif”);}
或者,如果您想要修改单个标记:

<p style="color:sienna;margin-left:20px">This is a paragraph.</p>
这是一个段落

*编辑

这些示例中的任何一个在显示时都不会有任何问题

Ref:

有几种方法。您可以使用将一些HTML附加到元素中

Document document = Jsoup.connect(url).get();
Element head = document.head();
head.append("<link rel=\"stylesheet\" href=\"http://example.com/your.css\">");
无论哪种方式,在修改后都可以通过获取最终的HTML字符串

通过(使用正确的字符集)将其写入文件


最后在webview中打开它。因为我无法从头顶上分辨出来,所以这里有一个链接,其中有一个我认为很有帮助的示例:。顺便说一句,我在上面找到了这个链接(谷歌也找到了这个链接).

问题是我从网页加载HTML,因此无法更改HTML。我想用jsoup添加代码,然后加载我自己的css。我知道,你的问题听起来有误导性,好像你控制了HTML。我编辑了这个问题,以正确的方式指向其他人。我自己没有任何经验。jsoup不是一个完全相同的问题。我无法使用loadDataWithBaseURL加载它,因为HTML中没有指向ccs的任何链接。因此我无法在本地应用程序中引用css。正确的字符集是什么?我必须在那里输入什么“/?”。正确的字符集是
Jsoup.connect(url.response().charset();
/…
正是获取
html
所需的代码。谢谢,但当我将此代码放到eclipse时,它会说:“Add throws decellation”…public void main(String…args)throws FileNotFoundException,unsupportedcodingexception{try{…我必须做什么?只需将
抛出IOException
添加到方法签名或将其放入try-catch中。您是否研究了Eclipse在单击红色项目时给出的建议?好的,我已经放置了一个try-catch。但现在它在webview中显示:位于file:///android_asset/file.html 无法加载为:请求文件未加载found.file.html
Document document = Jsoup.connect(url).get();
Elements links = document.select("a");
links.attr("style", "color:pink;");
String html = document.html();
String charset = Jsoup.connect(url).response().charset();
// ...
Writer writer = new PrintWriter("/file.html", charset);
writer.write(html);
writer.close();