HtmlCleaner是一个免费开源的适用范围广的Java语言Html文档解析器,它能重新整理HTML文档的每个元素并生成结构良好(Well-Formed)的HTML文档。默认它遵循的规则是类似于大部份web浏览器为创文档对象模型所使用的规则,户可以提供自定义tag和规则组来进行过滤和匹配。unibet ride
它被设计的小,快速,灵活而且独立。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兼容性比较好。
1.HtmlCleaner的文档对象模型拥有了一些函数,处理节点和属性,所以在序列化之前搜索或者编辑是非常容易的。
2.提供基本HtmlCleanerDOM的XPath支持
3.使用XML配置文件让创建定制tag变得更加容易
4.修复多个bug以及API改进
展开内容
8.9/1,724.8M
仙灵觉醒九游版是一款人气火爆的回合制策略手游,游戏中为玩家提供上百位Q萌伙伴,玩家可根据英雄属性组建最强战斗,游戏中独有九宫格骑兵布阵的回合制玩法,让你的策略布...
9.9/406.1M
NFCTasks是一个专门设计来与NFCTools配合使用的应用程序,它利用NFC技术来简化任务执行流程。在NFCTools中,用户可以创建和管理NFC标签,每...
8.5/550.2M
这是一个专门提供营销学习办公的辅助工具,通过这个app你可以体验更多的移动办公服务,在线管理你的客户,管理你的订单等,提供办公能力。移动赢销助手介绍赢销助手ap...
8.8/955.7M
二次元的动作游戏,瑰雪黑阳RWBY画质做的非常精致,还原经典的角色,流畅的动作,爽快的打击感,不同的角色进行合作击败强大的戮兽。游戏特色联机共斗,特色玩法动画品...
8.4/1,050.8M
魔法小组件app是一款让用户能够轻松定制个性化桌面的应用。它提供了大量的小组件,从日历、天气预报到待办事项列表等,应有尽有,用户可以自由地组合和搭配,以便打造出...
7.8/387.2M
appshare也就是App分享,这是一款资源丰富的应用商城软件,用户在这里下载软件全部免费,重要的是其中软件分类详细,基本上满足用户的所有需求,感兴趣的小伙伴...
7.7/1,253.5M
追赶网app是一款当地非常实用的手机线上消息发布分享平台,用户下载这款软件就能够在上面了解到非常优质的信息,同时如果自己要发布信息的话也能够在上面进行发布,也是...
9.0/1,520.5M
广东事考帮app,广东事业单位考试上岸神器!专注本土事业单位考试的掌上备考顾问!【产品介绍】广东事考帮是专为事业单位考试考生设计的的实现事业单位考试练习和模拟考...
8.1/294.3M
英雄大战僵尸2,经典的闯关打僵尸游戏,游戏中有着大量的关卡和玩法模式,每一关的僵尸强度是不一样的,越往后难度会升级,发挥智慧并熟悉的操控,使用各种武器消灭僵尸。...
8.9/198.2M
大众汽车IDR游戏是大众一款手机赛车手游,根据大众不同的车型将会有不同的赛车体验,最畅快的驾车体验,熟练地掌握最真实的驾驶玩法,不断地竞速,根据系统完成相关指示...
8.0/1,772.5M
永恒岛折扣平台是一款萌系MMO主打横版卷轴动作手游!这款游戏主题和画面风格都非常的可爱,就是各种彩虹的元素,让人看着就心情大好。游戏主要是冒险探索类的玩法,不过...
9.6/833.7M
EV录屏(EVCapture)以前叫做LiveView,是一款国产免费的视频录制工具+直播推流软件。是的,不但可以录制视频,还可以直接推流直播。支持斗鱼、熊猫T...
9.3/1,219.2M
烈火长歌行是一款全新推出的仙侠战斗冒险rrpg手游。游戏有着宏大的世界观,极高的自由度。玩家可以选择喜欢的仙侠角色加入战斗进行pk。多种游戏模式,强大的副本bo...
9.5/1,216.2M
小羿先森软件库APP中能为用户提供诸多精品软件资源,其中软件类型丰富,涵盖广泛领域,而且APP具备强大的智能搜索功能,用户只需在搜索框中输入软件名称的关键词,就...
9.3/980.1M
悬赏猫平台做任务、抢单、发悬赏、帮人忙、得佣金,这是一个老的兼职平台,专注为用户提供各种各样的手机任务兼职的手机APP,如果你想要做这些小的兼职赚钱,不想要中介...
9.4/189.7M
米安花软件是一款非常好用的手机借贷软件,在这里你可以借到几千块到几万块不等的金额,只需要通过手机注册登录即可,安全稳定使用,利息比较低!米安花app介绍《米安花...
9.0/1,137.2M
一刀传世主宰服是一款集MMO与RPG为一体的全新传奇手游,游戏拥有创新五分身玩法、VIP全部免费,更有官方内挂加持…难怪大哥也停不下来。宏伟的地图上布满了魔龙与...
8.0/653.6M
金吉利宝app,一款高收益安全投资理财平台,为有资金需求的用户提供一个公平、透明、稳定的信息服务,具有严格的安全信息保障,不让网络黑客危害你的资金安全。福利活动...
9.0/1,733.9M
托卡迷你城市警察是一款非常有趣的探索益智游戏,游戏专为3-8岁幼儿进行打造,在游戏里面孩子可以和小伙伴们一起进行探索,各种可爱的卡通人物也是非常的有趣,孩子们可...
7.5/1,231.6M
无线网络查看器是一款无限网络查看器,这款软件可以查看附近的wifi信号,然后帮助用户分析那些容易破解的wifi,免费上网,喜欢这款软件的朋友快来下载吧!软件介绍...
9.1/440.1M
僵尸末日生存2最新版本下载,在此游戏中能够体验到真实的僵尸格斗内容,提供大量的武器装备在末日中战斗,搜寻各种而关于的物资,成为末日英雄。僵尸末日生存2简介一款横...
9.1/1,144.1M
武汉芒果共享电单车是武汉本地的一个创业公司制作的共享电单车品牌,最近在武汉的各个商圈上线了,小编表示在街道口和虎泉都有看到哦,是黄色车身的造型时尚的电单车,下载...
9.5/315.6M
只为价值共享,就在微卡共享app,购物卡类型包括美食、休闲娱乐、电影、家装等,更多的企业可以直接方便快捷面对全球市场。应用介绍微卡共享商城简介:微卡共享是一个购...
8.0/1,996.3M
年度最好玩的卡牌游戏发布了,猎人觉醒手游这里有各种各样的猎人,同时也是可以自由的进行热血战斗,各种各样的技能也是可以使用出来,最强的ssr你准备好了迎接吗?猎人...
9.7/573.1M
DaDaBaby英语启蒙app是一款专为小宝宝们开发的英语早教启蒙软件,拥有个性化的教学课程,趣味化交互教学方式,让孩子轻松学习基础英语知识!DaDaBaby英...