html抓取成xml,XML学习笔记(一):HTML文件转成XML文件

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会将产生的错误信息写入错误文件中。

总结

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。

小编个人微信号 jb51ccc

喜欢与人分享编程技术与工作经验,欢迎加入编程之家官方交流群!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值