HtmlCleaner是一个免费开源的适用范围广的Java语言Html文档解析器,它能重新整理HTML文档的每个元素并生成结构良好(Well-Formed)的HTML文档。默认它遵循的规则是类似于大部份web浏览器为创文档对象模型所使用的规则,户可以提供自定义tag和规则组来进行过滤和匹配。2026世界杯预测
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代码中,当命令行工具或Ant任务。解析后编程轻量级文档对象,能够很容易的被转换到DOM或者JDom标准文档,或者通过各种方式(压缩,打印)连续输出XML。
佰万博娱乐 乐鱼永久网站 乐鱼商城仓库 亚博视讯官方 中考体育提分展开内容
realme社区app下载-realme社区论坛appv2.4.8 官网正式版
激斗西游手游2.2.0 安卓最新版
僵尸荒岛逃生之路游戏下载-Alive Rules : Fire On(僵尸荒岛逃生之路手游)1.0 官方正版
悦光泽下载-悦光泽app2.4.4 安卓版
奶酪壁纸软件下载安装免费版-奶酪壁纸1.0.1 手机版
修仙外传仙界篇下载-修仙外传仙界篇1.0.01 渠道服
逆天仙魔录1.9地图下载-逆天仙魔录1.9正式版附攻略和隐藏英雄密码
Selene LED手电筒高级版下载-Selene LED手电筒解锁会员版(LED Flashlight Selene & FLASH)2.3.9 简体中文版
元气骑士前传下载安装最新版-元气骑士前传官方下载1.8.0 最新版
乱世三国策安卓版下载-乱世三国策手游1.0 最新手机版
ColorMinis Collections手游4 手机版
拖把更名器_绿色免费批量改名软件V1.98i
睿卡师训app下载-睿卡师训苹果版1.0官网版
助学宝背题王(背题软件)0.9 安装版
佛山市政府app-佛山市政府(市民沟通)1.2.0 安卓最新版
7.8/1,320.6M
一款年轻人的社交软件,参加声音派对,多人在线连麦畅聊,通过声音遇见更多有趣的人,拓展社交圈子,让你可以告别孤单。荣迪软件介绍想认识新朋友?有趣的人在这等你。动态...
停车堵塞大师下载安装-停车堵塞大师(Car Parking Master: Cars Jam)1.7 安卓版
8.7/1,750.9M
停车堵塞大师是一款非常有趣的休闲类手游,它的游戏玩法简单易上手,同时又具有很高的挑战性和趣味性。如果你喜欢驾驶和停车游戏,不妨试试这款游戏,它一定会给你带来不一...
7.8/1,618.5M
最近不知道怎么回事,一张“妈妈在打我一次”的四格漫画瞬间红遍网络,原图估计没几个人知道了,倒是各种网友自己PS的打脸图传遍微博,各种无厘头、无下限的新版本,就连...
9.5/348.4M
乐成长app苹果版是一款非常不错的育儿软件,为家长带来了专业的育儿知识,五水共治,还提供许多少儿艺术类资讯,帮助孩子培养兴趣爱好,欢迎家长来下载!专业育儿知识分...
8.3/281.4M
我的战争六项修改器是一款非常不错的我的战争修改器。无限生命、道具给你带来不一样的战争体验。有需要的可以来东坡下载使用!我的战争六项修改器使用说明1.解压缩2.开...
10.0/1,149.9M
画条线是一款简单的画线类休闲手游。游戏玩法简单易上手,丰富的游戏关卡等你来挑战。玩家将通过线条来画出不同的动物形象的轮廓,趣味十足。游戏很消磨时间,还有多种游戏...
天线宝宝躲猫猫模拟器大作战下载-天线宝宝躲猫猫正版1.0.1 手机版
9.8/689.8M
非常火的一款休闲躲猫猫游戏,天线宝宝躲猫猫里面有2个队伍,一方扮演寻找者,另一方扮演藏匿者,双方斗智斗勇,看看谁的技术更厉害。天线宝宝躲猫猫正版规则ropHun...
8.5/1,281.3M
水果对对碰是一款趣味性十足的合成水果小游戏,玩法非常经典,将相同的水果进行撞击就可以合成一个大水果,合成的越大,获得的分数越高,完成每个关卡的任务就可以获取丰富...
苹果新emoji男妈妈表情包下载-苹果微软新emoji表情包7.16免费
8.4/27.1M
7月16日,iPhoneEmoji14.0版草案图样被曝光,这些Emoji可能是下次更新中会出现的,9月将会决定最终版。入围名单包括融化的笑脸、低电量、迪斯科球...
10.0/70.6M
环世界b18机械核心MOD给游戏中加入了丰富的机械,有耐用的不易燃金属、治疗特性的贵金属、独特的材料、复杂的独特材料等,让游戏更加的有科技感。安装方法找到游戏根...
9.1/482.8M
一起找找找手游是一款非常好玩的找不同游戏,很锻炼你的眼力和注意力,你需要在有限的时间里找出两组画面的不同和细节。你需要从诸多图案设计中寻找特定的照片,挑战方法或...
9.0/1,140.1M
极速赛车手手游是一款十分好玩的赛车竞速类型游戏,很多玩家都在关注,可玩性十分高的一款赛车游戏,多个道路关卡可以选择,漂移过弯道的体验!极速赛车手介绍极速赛车手是...
反键盘记录器-KeyScrambler Personal3.9.0.0最新版
7.7/897.0M
KeyScramblerPersonal是一款用于你的网络浏览器,防止你的用户名和密码被键盘记录器窃取的免费插件。KeyScramblerPersonal说明该...
7.5/701.8M
叶罗丽时辰砂,有着多种不同的服装可以让玩家自由的搭配,多种要求不同的关卡带来更多的挑战,玩家在游戏中可以自由的选择不同的搭配方式,多种游戏玩法可以让玩家享受到更...
局域网关机软件-局域网关机开源(开源局域网管理软件)1.0.0 官方免费版
8.9/1,716.5M
对一个指定的局域网进行在线的远程控制,如进行关键的话,你是怎么去选择的,不知道如何的控制好自己局域网里面所有的电脑自动关机的话,就可以试试局域网关机开源(开源局...
8.1/7.7M
快盆神器app是一款人人都能够兼职接单的配送软件,用户下载这款软件在上面进行实名认证就能够轻松做骑手,平台能够快速进行派单,用户工作时间随自己而定,收支也是非常...
craiyon图片生成app下载-craiyon AI生成画2 安卓版
7.9/362.3M
Craiyon是一款借助AI技术能够一键生成精美绘画作品的图片生成器,在这里人人都能成为画家,只要简单的进行描述,就能够一键打造,还能自定义对画作进行修改,力求...
灵动岛实时网速显示app下载-灵动岛网速显示APP1.1.1 最新版
8.3/1,667.1M
灵动岛网速app是能够实时显示网速在灵动岛上,功能多样化,对网速进行实时监控,现实CPU数据以及运行内存等信息,轻松掌握各种网络数据信息。灵动岛网速显示APP介...
意才基金app下载-意才基金app官方手机版下载v1.48 官方最新版
7.5/1,934.8M
意才基金是由青岛意才基金销售有限公司提供的移动应用程序,汇聚众多实用功能,精选优质产品,随时随地提供净值,公告等产品信息的查询,全面展示交易、持仓明细等资产状况...
电磁仿真软件cst studio suite 2020绿色免费版
8.9/1,821.0M
这是一款免费的电磁仿真软件,这是2019年的最新免费版本,非常多的用户都在可以使用,可以用来建设3d模型,进行电路分析,帮助完成项目工程!软件介绍CSTStud...
RFID Tools下载安卓版-RFID Tools1.4.9 最新版
9.7/1,547.0M
RFIDTools是一款有着较好兼容性和稳定性的设备读写软件,软件可以适配多种RFID设备,如手机NFC、PM3、变色龙、PN532、ACR122U等,这为用户...
9.9/1,562.1M
考研角app是一个非常实用的在线学习平台,它为学生提供了丰富的考研教学课程、在线资料、模拟训练和考试训练等学习资源,让学生可以轻松愉快地进行学习。如果你正在准备...
英魂之刃战略版国服下载-英魂之刃战略版国服版3.5.3.0官方正版
7.9/1,800.0M
英魂之刃战略版国服版魔幻画风的沙盒策略手游,通过多样的战略规划和战术执行来和其他玩家对抗,游戏拥有丰富的英雄、兵种和技能系统,玩家可以自由组建独特又强大的军团势...
7.7/496.9M
周润花是一个专业的手机回收平台,用户下载软件,使用手机号码注册登录,一键检测,快速显示检测报告,平台支持先打款,后寄物。用户通过平台出售二手机,就可以快速拿钱。...
松鼠模拟器(Squirrel Animal simulator)1.0 安卓版
7.7/1,288.3M
松鼠模拟器是一款休闲娱乐游戏,玩家在游戏中将扮演一只松鼠的角色。游戏画面简介,画风源自大自然,用来打发时间是非常不错的。松鼠模拟器简介:《松鼠模拟器Squirr...