Tidy

自己写的一个程序需要从网页抓取数据,思路是将网页转换成XML 文件,然后用调用java读xml的方法解析内容。

问题是网页通常都写的不规范,不能转成标准xml。

Tidy 是 W3C 用来解析网页的一个软件包,可以方便地将 HTML 文档转换为符合 XML 标准的文档,由于 XML 可以方便地使用 XSLT 技术对内容进行抽取,所以使用 Tidy 配合 XSLT 可以方便地将各种网页的内容抽取出来,保存成我们需要的格式。
通过 JTidy 可以方便地将标准的 HTML 网页转换为 XML 的 DOM 对象,然后,通过 XPaht 和 XSLT 将需要的内容抽取出来。

http://sourceforge.net/projects/jtidy/

例子:
 public static Document genDocFromUrl(String urlAddress) throws Exception{
  // 设置 tidy ,准备转换
  Tidy tidy = new Tidy();
  tidy.setXmlOut(true); // 输出格式 xml
  tidy.setDropFontTags(true); // 删除字体节点
  tidy.setDropEmptyParas(true); // 删除空段落
  tidy.setFixComments(true); // 修复注释
  tidy.setFixBackslash(true); // 修复反斜杆
  tidy.setMakeClean(true); // 删除混乱的表示
  tidy.setQuoteNbsp(false); // 将空格输出为  
  tidy.setQuoteMarks(false); // 将双引号输出为 "
  tidy.setQuoteAmpersand(true); // 将 & 输出为 &
  tidy.setShowWarnings(false); // 不显示警告信息

  
  URL url = new URL(urlAddress);
  URLConnection uc = url.openConnection(); // 建立连接
  Document doc = tidy.parseDOM( uc.getInputStream() ,null ); // 通过 JTidy 将 HTML 网页解析为

  return doc;
 }

 

你可能感兴趣的:(html,xml,.net)