它被设计的小,快速,灵活而且独立。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改进
HtmlCleaner是一个免费开源的适用范围广的Java语言Html文档解析器,它能重新整理HTML文档的每个元素并生成结构良好(Well-Formed)的HTML文档。默认它遵循的规则是类似于大部份web浏览器为创文档对象模型所使用的规则,户可以提供自定义tag和规则组来进行过滤和匹配。
展开内容
8.3/1,513.5M
此款工具是游戏大航海时代2的存档修改工具,主要用于存档的修改,下载后直接解压即可使用。大航海时代2好玩吗大航海时代作为小学地理课教材精准的世界地图环环紧扣的故事...
9.5/1,921.3M
奥菲利娅,不是哈利姆特的奥菲利娅,而是属于自己的名字。本节内容东坡小编为大家整理带来的是一份内容完全免费版的共由15页组成的奥菲利亚的影子剧院绘本ppt,ppt...
9.7/801.4M
闲将工作app是一个线上办公室软件,帮助用户搭建一个便捷的办公平台,可以更好地安排你的工作,加入你的团队!软件介绍欢迎来到闲将线上办公室,她将协助您和您的团队轻...
8.1/325.0M
这是专为阅读者打造的手机阅读软件,新颖的阅读模式,多种大ip改编小说,丰富的特效震撼不已,让你看故事更加有代入感。芸芸故事app,一款可以玩的二次元阅读平台,宅...
查看
9.3/1,944.8M
继教通是一款云南省继续医学教育学习软件,云南继续通学院可以查询成绩,学分等,还可以查询最新的科教动态。这里提供云南省继教通ios版,欢迎有需要的朋友下载。继教通...
8.0/1,502.8M
八爪鱼遥控器是一款简单实用的手机遥控软件,以前的手机遥控软件连接困难,模式简单,只能满足基础的遥控需求。现在这一款八爪鱼遥控器可以用于多种模式遥控,操作起来非常...
7.6/1,627.4M
赶快来体验一秒钟变身的快感吧!虚拟试衣间是一款超实用的手机工具,几百件衣服随你换,从而能帮你发现真正适合你的衣服。试穿满意您可以直接购买这个衣服,也可以将试穿结...
9.2/358.0M
Dream梦境生成器是一个神奇的绘图工具,具有强大的AI绘图功能,在该软件中输入关键字,就可以生成各种屏幕,软件画面色彩非常的丰富亮眼,在这里可以打造处歌手各式...
8.0/290.5M
找房子不将就,那就来那么住app,它是全新的智能引擎匹配合租室友的平台,智能算法推荐跟你更合的室友,还有vr看房的功能,二居室以上都是认证房源,安全可靠。亮点介...
9.5/1,729.2M
游戏福利码:开学快乐。提供中国区正版下载,更新更快!!《米加小镇:世界》活动上线!预约、分享、发视频,多种福利等你来拿,快点击上方福利参与活动吧~米加小镇1.4...
9.0/1,410.5M
Koki咯叽app是专门针对年轻人打造的一款视频聊天交友软件,发现自己感兴趣的朋友,随时的进行沟通交流,小编祝大家都能够脱单。Koki咯叽app功能介绍【真实用...
8.7/1,974.6M
一款画面十分可爱的趣味换装类游戏!游戏中你可以给可爱的美少女进行装扮,换上各种款式的衣服、发型、装饰等等,把可爱的小仙女打扮的漂漂亮亮再出门吧!游戏的画面十分精...
10.0/628.8M
针对于学龄前儿童所打造的一款教育性的益智小游戏,通过四款小游戏,引导孩子制定要自己穿衣服等;多样的玩法深受宝宝喜欢。儿童教育学独立介绍儿童教育学独立是针对宝宝成...
9.0/1,245.9M
这是一个非常不错的手机拼车服务类型软件,支持拼车,顺风车等等服务功能,适合河南省用户使用,在这个平台低价参与各种拼车服务。哈哈出行拼车软件简介1、这个平台提供了...
7.9/114.9M
蛇行打砖块游戏是一款很好玩的休闲打砖块类游戏,游戏玩法非常的简单,你只需要左右滑动操作挡板接住小蛇弹跳即可,游戏关卡非常的丰富等你来闯!游戏特色移动横杆使小蛇弹...
9.8/920.4M
幻灵仙途ios版是一款以仙侠世界为背景的角色冒险类游戏,游戏画面精致美观,人物形象设计以Q版为主,画风十分Q萌。游戏含有多种玩法,剧情丰富多样,玩家可以通过副本...
8.9/1,094.7M
人人急救是一款学习急救知识的软件,在生活中有些与时间赛跑的突发性病例没有送往医院的时间,这时候我们就需要急救知识了,比如孩子喉咙有异物堵塞游泳溺水这些都来不及送...
9.8/1,631.7M
叫我大掌柜台服是一个比较特别的版本,是为台服玩家准备的一个版本,目前也已经上线了,游戏的玩法其实是差不多的,以宋朝为背景,根据清明上河图中的盛况打造了游戏地图,...
9.9/260.0M
玩家化身猎人,用强力武器对抗恐怖僵尸,紧张音效带来强烈代入感。游戏关卡丰富且难度递增,击败僵尸获金币,可买更强武器装备,击中僵尸头部奖励更丰厚。武器属性随成长升...
9.4/1,608.2M
这款游戏是一款有着二次元画风的卡牌对战游戏,超炫酷的画风,各种不同的场景可以自由的体验,游戏关卡上面是非常之多的,想要获得胜利必须要技巧!王都妖奇谭介绍王都乱象...
8.7/540.1M
2017二十四节气的秋分来临,秋分是踏秋的正式开始。秋雨送凉秋,在这个日子里,有的朋友喜欢发一些说说,在这里为大家带来了2017秋分微信朋友圈图片带字说说大全,...
9.8/65.3M
在玩网络游戏的时候经常会遇到需要连续点击的情况,华华鼠标自动点击器绿色版可以帮你完成这些繁琐的操作,软件绿色免费,欢迎来下载使用!华华鼠标自动点击器绿色版介绍华...
8.8/1,923.0M
将照片制作成有趣和令人惊讶的卡通效果,你可以利用它为自己或家人与朋友制作卡通化的照片,它也可以加上素描的效果,让卡通画制作轻而易举。功能介绍:>扭曲分为球...
9.7/1,319.7M
米闻快报app是一款可以了解最新新闻资讯的软件,在上面用户可以观看娱乐,科技,游戏,体育,汽车,财经,搞笑,军事,旅游,美食,养生,国内国际,时尚教育等等热门资...