转自:http://blog.csdn.net/justoneroad/article/details/8125236
Jsoup解析HTML文件,并保存到本地需要引入的Jsoup.jar包:jsoup.jar
推荐阅读的jsoup使用教程:使用JSOUP处理HTML文档
以下是实现Jsoup解析HTML文件,并保存到本地的Java代码:
- /**
- * 这个文件实现了:将指定目录下的所有htm和html文件的<title>标签的值,替换成文件名(不含后缀)。
- */
- import java.io.File;
- import java.io.FileOutputStream;
- import java.io.IOException;
- import java.io.OutputStreamWriter;
- import org.jsoup.Jsoup;
- import org.jsoup.nodes.Document;
- import org.jsoup.nodes.Element;
- public class Rename {
- public static void main(String[] args) {
- // 默认文件夹路径
- String path = "C:\\report";
- if(args != null && args.length > 0){
- path = args[0];
- }
- try {
- renameHTMLTitle(path);
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- public static void renameHTMLTitle(String dir) throws IOException {
- File f = new File(dir);
- if (f.isDirectory()) {
- File fs[] = f.listFiles();
- for (File s : fs) {
- String title = s.getName().replaceAll(".htm", "").replaceAll(".html", "");
- if(s.getName().contains(".htm") || s.getName().contains(".html")){
- Document doc = Jsoup.parse(s, "gb2312");
- Element titleEl = doc.select("title").first();
- titleEl.html(title);
- /*
- * Jsoup只是解析,不能保存修改,所以要在这里保存修改。
- */
- FileOutputStream fos = new FileOutputStream(s, false);
- OutputStreamWriter osw = new OutputStreamWriter(fos, "gb2312");
- osw.write(doc.html());
- osw.close();
- }
- }
- }
- }
- }