import java.io.BufferedInputStream;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.net.URL;
import org.w3c.tidy.Tidy;
public class HTML2XML {
private String url;
private String outFileName;
private String errOutFileName;
public HTML2XML(String url, String outFileName, String errOutFileName){
this.url = url;//提供一個輸入的URL
this.outFileName = outFileName;//輸出文件
this.errOutFileName = errOutFileName;//錯誤文件
}
public static void main(String[] args){
//參數:HTML文件的UTL,輸出文件和錯誤文件名
System.out.println("程序開始運行……");
HTML2XML t = new HTML2XML("http://hswebuat01/maximo/help.html",
"c:\\temp\\html2xml.xml","c:\\temp\\err.txt");
t.convert();
System.out.println("程序運行結束……");
}
public void convert(){
URL u;
BufferedInputStream in;
FileOutputStream out;
Tidy tidy = new Tidy();
tidy.setXmlOut(true);//告訴Tidy將HTML轉換成XML
try{
tidy.setErrout(new PrintWriter(new FileWriter(errOutFileName),true));//將錯誤信息保存到文件中
u = new URL(url);
in = new BufferedInputStream(u.openStream());//創建一個輸入輸出流
out = new FileOutputStream(outFileName);
tidy.parse(in, out);//轉換文件
in.close();
out.close();
}catch(IOException e){
System.out.println(this.toString()+e.toString());
}
}
}
要点:
(1)BufferedInputStream()的应用
(2)java扩展标准库org.w3c.tidy.Tidy的使用
(3)URL的使用
注意:
该程序中用到的org.w3c.tidy包在http://sourceforge.net/projects/jtidy/下载。解压后引用build文件夹中的tidy包就ok了。