HtmlCleaner是一个免费开源的适用范围广的Java语言Html文档解析器,它能重新整理HTML文档的每个元素并生成结构良好(Well-Formed)的HTML文档。默认它遵循的规则是类似于大部份web浏览器为创文档对象模型所使用的规则,户可以提供自定义tag和规则组来进行过滤和匹配。同业助手ios版下载-同业助手(旅行社移动营销工具)5.1 官方ios版
写一个测试用的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代码中,当命令行工具或Ant任务。解析后编程轻量级文档对象,能够很容易的被转换到DOM或者JDom标准文档,或者通过各种方式(压缩,打印)连续输出XML。
展开内容
7.5/1,004.5M
2Dark是一款恐怖冒险解密游戏,画风诡异,cpy破解组就最新破解了该游戏,小编就提供2DarkCPY镜像版,有兴趣的玩家就来下载吧。2DarkCPY镜像版配置...
8.8/1,415.8M
软件是一款学习文化知识app,有着很多的知识可以了解,每日的出行可以快速知晓,各种美食可以查看,好吃好玩轻松点击即可了解,让大家更加了解槐荫的各种事情!文化云是...
8.5/1,272.7M
猎人传说是一款日漫风格二次元策略卡牌手游。游戏有着经典的热血日漫画风,丰富的游戏内容,让你重温经典。选择你喜欢的角色进行战斗,还有强大的猎人养成系统,给你绝佳的...
9.6/1,831.6M
去掉了广告,修改了会员功能,打开就能用的形象对话生成会员版app,用户下载后直接输入你要转换的话语就可以操作,很方便的一个软件,转换好后可以直接复制粘贴给你的朋...
9.7/1,336.3M
骑士的魔法战争手游融合了Roguelike元素,游戏画面采用3D模式,收集各种各样的英雄来进行对战,多种技能的组合以及种族之前的相互克制,游戏体验非常有趣,喜欢...
8.4/602.6M
品茗晓筑是基于大模型构建的建筑行业技术专家智能体,适配各类建筑相关企业与个人。具备专业知识储备,支持查规范、图集、图纸,能解答专业问题、撰写审核技术文档,提供定...
8.9/1,897.9M
豪情水浒游戏是一款以卡牌为主题的游戏,超炫3D效果,震撼4K画质,模拟真实环境堪比大片,有着精致的清晰卡牌、男生精选画面设计,引用pk风格,游戏中经典还原了水浒...
7.5/1,562.7M
发条音乐课app是一款非常给力的手机学习应用,用户通过发条音乐课app能够便捷的获得各种音乐学习资料,还提供了各种教学视频课程,是学习音乐的神器。发条音乐课ap...
8.0/970.3M
中免会员官方购物平台上线啦!为你提供最优质的线上免税购物服务。这里的产品都是直接和官方对接的,国产官方的购物平台,值得信赖,价格实惠,发货极速,适合想要免税产品...
9.4/604.8M
英雄战魂2深渊冲突官方版是一款魔幻世界的MMO战斗冒险,魔幻的大陆之中各种的角色都可以让你去进行挑选,里面自由的战斗没有任何的限制,随时都可以去冒险作战,消灭副...
8.8/958.9M
格式化清除U盘数据修复不能打开的问题;格式化为HDD启动盘,格式化为ZIP启动盘。v0.0.92010-12-161.超快捷格式化工具对PS2250系列主控新型...
7.6/799.8M
快批是一款实用的门店管理软件,功能全面且高效,能打通线上线下的批发管店系统,为商家提供便捷的经营解决方案。通过软件可实现快速开单,扫码即可完成销售价格与经营情况...
9.0/207.9M
思维导图专家是一款非常简单的导图制作软件,无论是学习中的笔记还是工作中的记录,思维导图专家这款软件都能使用的上;点击分支就可以在导图上门进行编辑、删除、标记等;...
9.4/410.0M
hotstepper是一款国外非常有趣的ar导航软件。就是有一个泳裤的大叔带路,你只需要输入目的地,就会有一个穿着泳裤的大叔带你过去。ar的场景很真实,给你不一...
8.2/445.9M
在线外卖员模拟器是一款模拟经营手游,在游戏中玩家作为一名外卖员,你将在时间内把餐送到顾客的手中,并快速开始下一单,一路上当然会有很多障碍,全靠玩家的技巧操作,感...
9.5/1,365.0M
地狱怒火是一款冒险类格斗游戏,这款游戏的画面有着非常恐怖的效果,游戏中你可以选择各种不同的副本,喜欢这款游戏的可以试玩哦!地狱怒火游戏操作方法w:向上飞a:向左...
7.9/869.0M
元游军旗是一种休闲棋牌手游,游戏操作非常的简单,很好上手,游戏玩家可以和全世界的人民同时在线,可以人机可以双人对战,爱好军旗的朋友可以下载试玩,游戏多多哦。元游...
9.8/339.8M
这是最近非常火的一个口红机游戏,类似于飞刀挑战的玩法,连续闯过3关你就可以赢得正品口红,各种型号的都可以选择,完成各种小游戏!游戏介绍火爆商场的闯三关赢口红的口...
8.8/782.7M
很多人都升级了win10,不得不说,win10的优化和改动确实很给力,但是有一点小编不得不吐槽,那个登录界面做的太丑了!这不,小编给大家带来一款工具,可以修改w...
9.6/1,249.2M
海信云空调app是一款智能海信空调控制软件,可以用手机设定空调的温度,风俗,定时等,随时随地掌握的空调运行信息。海信云空调功能介绍海信云空调是苹果云空调的升级版...
10.0/1,116.0M
《战棋无双》是一款策略棋牌游戏,游戏画风是西方魔幻色彩,游戏非常好上手,操作简单但是技能打击感强,游戏竞技性强,玩家可以通过不断地副本获得材料,最强王者竞技。《...
9.1/412.3M
失忆QQ空间批量刷留言软件是是专门用来帮助你在QQ空间留言板批量留言的工具,导入小号或者cookies状态,即可开刷,支持自定义留言内容。软件绿色免费,使用方便...
8.7/1,124.0M
派大星修改器是一款很实用的手机游戏修改器软件。这里包含了很多的功能可以使用,操作简单。可以轻松修改各种游戏中的数据,你还可以进行各种没有root权限的虚拟框架运...
8.4/611.9M
这款软件是一款非常好用的学习类app,你可以在上面学习到众多的知识,各种不同部位的肌肉可以查看,每一个小点都可以看到内容,让大家学习更多!2019版肌肉学图谱介...
8.4/1,264.6M
金都无限刀爽爽爽是一款传奇魔幻动作手游,经典的格斗PK打法,升级了超大的游戏地图和游戏场景。玩家可以自由选择职业,随时和其他玩家作战。各种各样的游戏活动让你升级...