您的位置:首页 > Web前端 > HTML

XML学习笔记(一):HTML文件转成XML文件

2015-12-02 11:35 573 查看
XML全称Extensible Markup Language,可翻译为可扩展标记语言,是一种置标语言。常用XML文档描述数据,使得数据能被多个程序共享,还常用XML文档存放程序的配置参数,也用于定义Web网页上的文档元素(如RSS)以及商业文档。

在现实应用中,由于浏览器的易错性,大量的HTML网页格式很不规范。将HTML网页文件转换成XML文件后,将大大方便网络信息的抓取和维护。下面这个实例的功能是将HTML网页文件转成XML文件。 这个转换要用到tidy的jar包,官方下载地址 http://sourceforge.net/projects/jtidy 下载下来,然后把里面的jar引入到项目中去就可以了。

技术要点

将HTML网页文件转成XML文件的技术要点:

运用Java扩展标准库org.w3c.tidy.Tidy中的方法实现加上URL网页地址的获取和转化;

运用输入和输出流缓冲区BufferedInputStream和FileOutputStream将HTML文件中的数据读取转化成XML文档。

源代码

package corejava;

import java.awt.font.TextHitInfo;
import java.io.BufferedInputStream;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.PrintWriter;
import java.net.URL;

import org.w3c.tidy.Tidy;

/**
 * 操作讲HTML文件转化成XML文件
 * */
public class TestHTMLtoXML {
	private String url;//HTML网页地址
	private String outFileName;//xml文件所在路径
	private String errOutFileName;//错误信息文件所在的路径
	
	public TestHTMLtoXML(String url,String outFileName,String errOutFileName){
		this.url=url;
		this.outFileName=outFileName;
	    this.errOutFileName=errOutFileName;	
		
	}
	public void convert(){
		URL u;
		BufferedInputStream in;
		FileOutputStream out;
		Tidy tidy=new Tidy();
		tidy.setXmlOut(true);//通知Tidy将HTML转化成XML
		try{
			System.out.println("begin");
			tidy.setErrout(new PrintWriter(new FileWriter(errOutFileName),true));//讲错误信息保存到文件errOutFileName中
			u=new URL(url);//根据网址创建URL对象
			in=new BufferedInputStream(u.openStream());//创建缓存输入流
			out=new FileOutputStream(outFileName);//创建文件输出流
			tidy.parse(in, out);//转换文件
			in.close();
			out.close();
		}catch(Exception e){
			e.printStackTrace();
		}
	}
public static void main(String[] args) {
	String htmlFile="http://www.baidu.com";
	String xml="C:/Users/Administrator/Desktop/p.xml";
	String errorFile="C:/Users/Administrator/Desktop/error.txt";
	TestHTMLtoXML htmltoXML=new TestHTMLtoXML(htmlFile, xml, errorFile);
	htmltoXML.convert();
	System.out.println("HTML文件装换成XML文件结束");
	
}
}
解读:

实例中设置输出的文件是XML格式,告知Tidy将HTML转换为XML。JTidy提供HTML语法检查和HTML的pretty printing,它还允许将一个HTML文件作为输入,然后将其转换为XML。JTidy读取输入文件,如果发现有任何不匹配或遗漏的闭合标记,将纠正这些标记,最输出一个格式良好的XML文档。

JTidy对文件转换的方法进行了良好的包装,只需在代码中加入获取输入/输出流的方法parse()方法便可将HTML文件转换为XML文件。如果转换失败,JTidy会将产生的错误信息写入错误文件中。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: