3

当我用jsoup解析html 文件(存储在本机中)时。我修改了html文件中的一些元素,所以我想保存修改后的html,并替换旧的?有人知道jsoup 中的哪种方法可以完成这项工作吗? 非常感谢!!!

4

3 回答 3

9

你可以写任何一个的内容

document.toString() 

或者

document.outerHtml()

归档,从哪里document得到

Document document = Jsoup.connect("http://...").get();
// any document modifications...

像这样:

BufferedWriter htmlWriter = 
     new BufferedWriter(new OutputStreamWriter(new FileOutputStream(outputFile), "UTF-8"));
htmlWriter.write(document.toString());
于 2012-11-24T13:08:49.263 回答
2

将修改后的 jSoup 元素更改为 HTML 字符串:

http://jsoup.org/apidocs/org/jsoup/nodes/Element.html#html%28%29

String html = document.html();

写入文件:

Writer writer = new PrintWriter("/file.html", html);
writer.write(html);
writer.close();

更多信息: 使用 jsoup 将自定义 css 添加到 html 代码

于 2012-11-24T13:14:13.570 回答
2

有 6 票的声明答案是正确的,除了一部分,它需要多 1 行代码。

“htmlWriter.close();” 或“htmlWriter.flush();” 如果你愿意,或者两者兼而有之。在他的代码段末尾,因为我遇到了同样的问题并且我使用了他的版本,但是他缺少这部分(从帖子的第一条评论可以看出:gist.github.com/4139609。所以完成的代码段是:

BufferedWriter htmlWriter = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(outputFile), "UTF-8"));
System.out.println("\n" + doc.outerHtml());
htmlWriter.write(doc.toString());
htmlWriter.flush();
htmlWriter.close();
于 2014-08-27T12:32:06.843 回答