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文档。
源代码
实例中设置输出的文件是XML格式,告知Tidy将HTML转换为XML。JTidy提供HTML语法检查和HTML的pretty printing,它还允许将一个HTML文件作为输入,然后将其转换为XML。JTidy读取输入文件,如果发现有任何不匹配或遗漏的闭合标记,将纠正这些标记,最输出一个格式良好的XML文档。
JTidy对文件转换的方法进行了良好的包装,只需在代码中加入获取输入/输出流的方法parse()方法便可将HTML文件转换为XML文件。如果转换失败,JTidy会将产生的错误信息写入错误文件中。
在现实应用中,由于浏览器的易错性,大量的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会将产生的错误信息写入错误文件中。
相关文章推荐
- html中offsetTop、clientTop、scrollTop、offsetTop各属性介绍
- HTML标签自定义属性
- HTML 5怎么就成了RIA“杀手”?
- .NET编码解码(HtmlEncode与HtmlEncode)
- MVC htmlAttributes and additionalViewData
- HTML框架
- HTML表格的基本结构
- HTML超链接
- html()和text()区别
- 使用TWebBrowser组件保存网页为html和mht文件 收藏
- HTML学习笔记
- 【1】HTML
- HTML结构
- canvas 大转盘
- HTML <a> 标签的正则表达式
- .NET编码解码(HtmlEncode与HtmlEncode)
- HTML标签以及各个标签属性大全(网页制作必备)
- doxygen 引用.md红色字体设置无效
- Emmet(Zen coding)HTML代码使用技巧七则
- haproxy web跳转 通过.html 跳转