HtmlCleaner是一个免费开源的适用范围广的Java语言Html文档解析器,它能重新整理HTML文档的每个元素并生成结构良好(Well-Formed)的HTML文档。默认它遵循的规则是类似于大部份web浏览器为创文档对象模型所使用的规则,户可以提供自定义tag和规则组来进行过滤和匹配。帮助买家对淘宝的海量宝贝进行快速搜索淘宝网买家购物助手v3.0
1.HtmlCleaner的文档对象模型拥有了一些函数,处理节点和属性,所以在序列化之前搜索或者编辑是非常容易的。
2.提供基本HtmlCleanerDOM的XPath支持
3.使用XML配置文件让创建定制tag变得更加容易
4.修复多个bug以及API改进
它被设计的小,快速,灵活而且独立。HtmlCleaner也可用在Java代码中,当命令行工具或Ant任务。解析后编程轻量级文档对象,能够很容易的被转换到DOM或者JDom标准文档,或者通过各种方式(压缩,打印)连续输出XML。
写一个测试用的html文件:html-clean-demo.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd " >
< html xmlns = "http://www.w3.org/1999/xhtml " xml:lang = "zh-CN" dir = "ltr" >
< head >
< meta http-equiv = "Content-Type" content = "text/html; charset=GBK" />
< meta http-equiv = "Content-Language" content = "zh-CN" />
< title > html clean demo </ title >
</ head >
< body >
< div class = "d_1" >
< ul >
< li > bar </ li >
< li > foo </ li >
< li > gzz </ li >
</ ul >
</ div >
< div >
< ul >
< li > < a name = "my_href" href = "1.html" > text-1 </ a > </ li >
< li > < a name = "my_href" href = "2.html" > text-2 </ a > </ li >
< li > < a name = "my_href" href = "3.html" > text-3 </ a > </ li >
< li > < a name = "my_href" href = "4.html" > text-4 </ a > </ li >
</ ul >
</ div >
</ body >
</ html >
Html代码
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh-CN" dir="ltr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GBK"/>
<meta http-equiv="Content-Language" content="zh-CN"/>
<title>html clean demo</title>
</head>
<body>
<div class="d_1">
<ul>
<li>bar</li>
<li>foo</li>
<li>gzz</li>
</ul>
</div>
<div>
<ul>
<li><a name="my_href" href="1.html">text-1</a></li>
<li><a name="my_href" href="2.html">text-2</a></li>
<li><a name="my_href" href="3.html">text-3</a></li>
<li><a name="my_href" href="4.html">text-4</a></li>
</ul>
</div>
</body>
</html>
模拟需求:取出title,name="my_href"的链接,div的class="d_1"下的所有li内容。下面用htmlcleaner写代码,HtmlCleanerDemo.java
package com.chenlb;
import java.io.File;
import org.htmlcleaner.HtmlCleaner;
import org.htmlcleaner.TagNode;
/**
* htmlcleaner 使用示例.
*
* @author chenlb 2008-11-26 下午02:12:02
*/
public class HtmlCleanerDemo {
public static void main(String[] args) throws Exception {
HtmlCleaner cleaner = new HtmlCleaner();
TagNode node = cleaner.clean(new File( "html/html-clean-demo.html" ), "GBK" );
//按tag取.
Object[] ns = node.getElementsByName("title" , true ); //标题
if (ns.length > 0 ) {
System.out.println("title=" +((TagNode)ns[ 0 ]).getText());
}
System.out.println("ul/li:" );
//按xpath取
ns = node.evaluateXPath("//div[@class='d_1']//li" );
for (Object on : ns) {
TagNode n = (TagNode) on;
System.out.println(" text=" +n.getText());
}
System.out.println("a:" );
//按属性值取
ns = node.getElementsByAttValue("name" , "my_href" , true , true );
for (Object on : ns) {
TagNode n = (TagNode) on;
System.out.println(" href=" +n.getAttributeByName( "href" )+ ", text=" +n.getText());
}
}
}
Java代码
package com.chenlb;
import java.io.File;
import org.htmlcleaner.HtmlCleaner;
import org.htmlcleaner.TagNode;
/**
* htmlcleaner 使用示例.
*
* @author chenlb 2008-11-26 下午02:12:02
*/
public class HtmlCleanerDemo {
public static void main(String[] args) throws Exception {
HtmlCleaner cleaner = new HtmlCleaner();
TagNode node = cleaner.clean(new File("html/html-clean-demo.html"), "GBK");
//按tag取.
Object[] ns = node.getElementsByName("title", true); //标题
if(ns.length > 0) {
System.out.println("title="+((TagNode)ns[0]).getText());
}
System.out.println("ul/li:");
//按xpath取
ns = node.evaluateXPath("//div[@class='d_1']//li");
for(Object on : ns) {
TagNode n = (TagNode) on;
System.out.println(" text="+n.getText());
}
System.out.println("a:");
//按属性值取
ns = node.getElementsByAttValue("name", "my_href", true, true);
for(Object on : ns) {
TagNode n = (TagNode) on;
System.out.println(" href="+n.getAttributeByName("href")+", text="+n.getText());
}
}
}
cleaner.clean()中的参数,可以是文件,可以是url,可以是字符串内容。个人认为:比较常用的应该是evaluateXPath、getElementsByAttValue、getElementsByName方法了。另外说明下,htmlcleaner对不规范的html兼容性比较好。
展开内容
9.0/1,716.6M
威望屏幕抓图王软件以快捷键的方式抓图,在使用过程中您只要按一下快捷键就可以抓图了,抓图可以按您的要求要存储,还在等什么赶紧来下载使用吧。威望屏幕抓图王介绍威望屏...
7.9/1,419.9M
尼泊尔驾驶考试(NepalDrivingTrial),一款驾驶模拟游戏,游戏一共有三个不同的类别,有29个不同的层次可以选择,在尼泊尔来一场驾驶体验吧!游戏简介...
8.6/339.9M
现在的字体越来越多,越来越丰富。那么为了快速的选择自己想要的字体,首先就要对字体进行预览,怎么样才能快速的进行字体预览呢?FontMate(字体预览工具)就是一...
查看
7.6/1,140.8M
僵尸生存防御战争Z像素风格的割草手游,在游戏之中玩家作为人类的幸存者,你需要勇敢的与汹涌的僵尸战斗,装备强的武器,依靠灵活的走位立于不败之地,感兴趣的小伙伴快来...
9.2/1,438.3M
跳一跳新版本的玩法,就是功夫跳跳乐,这里你可以看到你喜欢的功夫画面,同时还是可以组队以及拉上你的好友一起来组队pk,看看你可以跳的多远!功夫跳跳乐高分技巧首先你...
9.2/793.3M
颜色非常鲜艳的3d色彩躲避类游戏,道路故障3D(RoadTrouble3D)中玩家要在充满色块的道路上前进,不能碰到任何有颜色的积木,努力走的更远一些,这样可以...
9.4/1,386.5M
小编在此介绍的是一个解压缩的软件,十分的好用,欢迎大家前来东坡网下载使用。软件介绍PeaZip是跨平台基于FreePascal的免费绿色便携的解压缩软件。软件介...
7.9/384.6M
饥荒联机版怪诞小镇迪普派恩斯MOD是一款最新的存档,可以让你的角色变为怪诞小镇的主角迪普派恩斯的模样,喜欢这个模型的朋友可以下载试试哦。饥荒联机版怪诞小镇迪普派...
9.9/985.2M
口袋奇迹满v版本是一款深受广大玩家喜爱的冒险游戏,和一般的游戏不同的是,这里有全新的剧情,全新的玩法。多人团战,狂拽炫酷给我们带来更多的精彩内容。口袋奇迹福利1...
8.3/1,759.6M
闪电音频转换王历史版本,是一款功能强大的音频转换工具、影视视频音乐提取工具、音频压缩工具,支持同一种音频格式在不同压缩率、采样率、比特率之间的转化(可以压缩音频...
8.1/988.9M
自解压软件制作工具箱是一款简单好用的解压工具,能帮助用户快速解锁文件,包括换包、解压、上传等操作,支持不同的格式,而且拥有体积小、操作简单等优势,节省你的时间!...
9.5/527.7M
劳务合同范本,一份免费的劳务合同文书。十分的经典,实用。对于在工作的朋友来说,你可以看看你签的合同和这份合同有什么区别哦,快来东坡下载看看吧!劳务合同范本内容介...
8.7/733.7M
jpg图片超级压缩器是一款图片压缩软件,图片压缩效果非常的好,不失真,支持图片对比,对于图片编辑,做广告等都非常的有帮助。需要的朋友可以免费下载。jpg图片超级...
8.9/603.9M
天若打造了好几款软件,现在又做作了一个排版的软件,天若段落排版主要是针对段落的,不用手动去删除空余的空格,自动生成排版好的段落,方便快捷。软件介绍起源,某朋友碰...
8.6/1,054.7M
最近一款没有腿用锄头的游戏火爆了朋友圈,在各个平台上都可以看到主播在玩。这款游戏叫做和班尼特福迪一起攻克难关,非常的虐心,让你欲罢不能。感兴趣的小伙伴可以试试!...
8.3/864.1M
地铁瞎跑游戏下载安装3d,这是roblox平台上非常火爆的一款全新跑酷游戏,该游戏采用地铁跑酷游戏元素,不同的是,地铁瞎跑是多人跑酷,可以与其他玩家们同屏竞技,...
8.6/358.0M
深蓝迅雷白金会员账号获取器是一款小巧、绿色、免费的由深蓝软件制作的迅雷白金会员账号采集软件。有需要的赶紧拿走吧!迅雷白金会员账号获取器功能特色:软件功能强大,绝...
10.0/1,947.3M
需要雅思考试的学生可以使用雅思club手机版,这里有最新的考试真题,同时也是有一些教学资源的,为你免费的提供在线学习的机会,解决你雅思提分难处!软件介绍烤鸭们,...
9.3/830.2M
这是一款强大的苹果手机助手,在爱思助手里,用户可以检测到我的设备,包括应用游戏,铃声,刷机越狱等等功能的实现,极大地方便了用户的体验乐趣。功能介绍一、设备管理连...
8.2/1,418.6M
记得密码app是一款简单好用的密码管理软件,通过密码管理功能,用户可以更好的管理自己的重要信息,各种会员账号密码都可以保存在这里!软件介绍一款简单、易用、漂亮的...
9.8/209.6M
温江智慧养老手机版专为温州人民打造的本地养老服务平台,针对老人晚年生活的方方面面做出具体的养老规划,让老人更加轻松的享受优质生活,内容设计全面广泛,绝对是温州老...
9.6/738.7M
企鹅电竞为您带来了一个好玩的直播软件,直接在这里就可以了解更多更全面的游戏资讯哦!随时围观大神的游戏直播!快来体验吧!企鹅电竞特点1、企鹅游戏致力于打造中国领先...
7.6/72.5M
AI照片无损放大工具是一款超级好玩的图片放大工具。有了它,用户可以将一张图片选择放大并且不损失清晰度。AI照片无损放大工具有点类似于矢量图的意思,相信会帮到很多...
9.6/763.9M
教师节到来了,给老师送上诚挚的祝福吧,东坡小编整理了一些教师节的祝福语大全,写给老师的祝福语,包含了温馨,简短,暖心的话语,包含了10字+30字+50字+100...