1.HtmlCleaner的文档对象模型拥有了一些函数,处理节点和属性,所以在序列化之前搜索或者编辑是非常容易的。云间棋牌
2.提供基本HtmlCleanerDOM的XPath支持
3.使用XML配置文件让创建定制tag变得更加容易
4.修复多个bug以及API改进
写一个测试用的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兼容性比较好。
HtmlCleaner是一个免费开源的适用范围广的Java语言Html文档解析器,它能重新整理HTML文档的每个元素并生成结构良好(Well-Formed)的HTML文档。默认它遵循的规则是类似于大部份web浏览器为创文档对象模型所使用的规则,户可以提供自定义tag和规则组来进行过滤和匹配。
它被设计的小,快速,灵活而且独立。HtmlCleaner也可用在Java代码中,当命令行工具或Ant任务。解析后编程轻量级文档对象,能够很容易的被转换到DOM或者JDom标准文档,或者通过各种方式(压缩,打印)连续输出XML。
展开内容
9.8/286.0M
好色先生(改名观色配色)APP是一款比较不错的色彩调试工具,它宛如一把神奇的钥匙,为用户开启探索色彩奥秘、实现创意配色的大门。这款功能强大、独具特色的APP,已...
9.8/992.0M
中国发展研究基金会打造的一款手机客户端,未来每个孩子的公平起点,慧育中国app方便工作人员进行管理,进行家访,问题处理等。软件介绍“慧育中国:山村入户早教计划”...
8.4/1,994.3M
很多人在第一用电脑,总在为电脑装软件而伤神,其实不需要这样麻烦,只需要选择7654安装包定制工具,它就能够一键安装所有电脑需要的软件,这样就能帮助你减少大量的时...
10.0/172.3M
新少年西游记是一款放置类回合手游。这款游戏中特色神将酷炫技能独特战法秀出智商,玩家可以在游戏中挂机升级、排兵布阵、挑战各色Boss,还可以收集各色神将、培养自己...
9.2/1,667.0M
此软件为游戏幽浮:未知敌人最高难度存档,此存档有过部分修改器修改,具休请看说明。存档说明通关存档是自用开二周目的,所以直接开了修改器直冲关底,无技术含量,不喜勿...
8.9/677.6M
捷电通app是一款生活服务类软件,软件为用户提供便捷的充电服务,让车主出行能更快的找到共享充电站并进行充电服务,价格清晰透明,还能在软件上面充值并直接在线支付使...
7.5/1,789.9M
本程序基于AT7456芯片开发,为MCM格式的字库文件提供图形化的编辑方式.程序界面布局1.字库的显示:在左边部分橙色框中显示字库,显示比例1倍或2倍可调节.接...
8.7/1,527.1M
第二信号app是一款互动评分社交App。人类不是只会做“是非题”的单核细胞。在第二信号app这里,让你告别盲目右滑积累的无效关系,轻松建立更有质量的社交连接,表...
7.5/1,194.3M
中国竖版地图2014是国内首创的大幅面全开竖版地图。南海海域和岛屿与大陆为同一比例尺,南海诸岛不再作为插图形式表示。中国竖版地图最新版如何使用在软件下载下来后,...
8.0/434.3M
艾玛的生日派对是一款养成类型的休闲游戏,我们需要发挥自己的创意去设计一个独一无二的生日蛋糕,收集更多的星星解锁更多的精美礼品,帮艾玛挑选最美丽的造型参加生日舞会...
7.6/1,384.1M
愚人节整人已经司空见惯了,想要在愚人节这天防止被整和怎么整人已经是很多网友热议的事,在这里东坡为大家收集了2017愚人节搞笑段子大全以及整人秘诀,需要的朋友赶快...
8.5/1,270.9M
狡猾的部落是一款类似皇室战争的策略对战游戏,游戏中玩家将通过收集你的兵种卡牌,在短短的两分钟里用尽一切力量打败你的对手,在杀掉敌人的同时也要保护自己的资源不被敌...
8.3/877.8M
Notepad2-mod,是一个相当优秀的轻量级文本编辑器,提供了大量实用功能,如代码高亮、编码转换等功能,是轻量级文本编辑器、代替记事本的最佳选择。软件简介N...
8.0/450.8M
BugScan是一个简单实用的web安全漏洞在线扫描器,由用户自己创建扫描中间节点,bugscan提供任务调度,以及扫描插件维护等,这是一款非常不错的扫描器,近...
7.7/822.1M
罗布乐思皮肤制作工坊是个专为罗布乐思这款游戏设计的辅助工具,通过它,能让玩家自定义、裁剪并实时预览设计,为角色创造独特造型,将创意变为现实。而且操作简单直观,即...
10.0/659.9M
绝命枪手游戏是一款模拟特种兵进行战争射击的游戏,在游戏里面充满危险,利用你的智慧和流利操作来加入射击战斗,选择适合自己的武器进行战斗。游戏介绍绝命枪手游戏是一款...
7.6/1,653.3M
龙城秘境送10W元充值是一款经典传奇战斗就是扮演rpg手游。游戏有着丰富的玩法内容,熟悉的传奇元素再现。玩家可以选择喜欢的职业加入战斗进行pk。在这里满地金币装...
8.1/63.7M
安邦培训app是一款专业的安保人员培训服务软件,提供丰富的课程和学习资料,以及个性化的指导和实战演练。如果你是一名安保人员,或者对安保领域感兴趣,那么安邦培训a...
8.8/1,533.4M
每天都有不断的精彩主题出现,ACGN社区app这里汇集了很多的人,大家一起去沟通交流,无论是讨论游戏、小说、动漫等,都可以在这里畅聊。ACGN社区app介绍AC...
8.2/1,111.7M
毕业了,要工作了,在家住不方便,也没有寝室可以住了,必须得租房了,而租房得有房屋租赁合同要签吧!那么问题来了,房屋租赁合同长什么样呢?如何在租房的时候保障自己的...
9.0/947.8M
HiShoot2i模板汉化版是一个带壳截图软件,这个是汉化中文版本,也解锁了软件中的所有付费项目,所以是完全免费使用的。这款软件为大家带来了最新的带壳模版,大家...
9.3/1,373.8M
蝙蝠侠:阿甘起源是继续蝙蝠侠系列的最新续作,那么如游戏名称所示,这里的故事将发生在阿甘系列作品的最前面,也就是起源!使用说明1、解压缩2、复制所有文件到游戏目录...
8.1/305.7M
面点大师是一款有趣的经营手游,在游戏之中玩家经营一家面点小摊,根据游戏中顾客的要求,玩家可以制作各种好吃的食品,还能解锁各种食谱不断赚钱哦,感兴趣的小伙伴快来东...
8.4/614.4M
一块到底手游是一款可以与别人对战的休闲益智闯关游戏,玩家需要将空白的方块相连,只能一条路走到底,没有回头路,越到后面关卡越难,挑战很大,趣味性也极强,打发时间很...
8.6/614.9M
晚安吧面包app是一款好用的睡眠辅助软件,晚安吧面包app拥有许多可以助眠的音乐,你可以在这里聆听大自然的声音,轻松愉悦的自然环境,用户可以放松心情更好的入眠。...