它被设计的小,快速,灵活而且独立。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兼容性比较好。
HtmlCleaner是一个免费开源的适用范围广的Java语言Html文档解析器,它能重新整理HTML文档的每个元素并生成结构良好(Well-Formed)的HTML文档。默认它遵循的规则是类似于大部份web浏览器为创文档对象模型所使用的规则,户可以提供自定义tag和规则组来进行过滤和匹配。
1.HtmlCleaner的文档对象模型拥有了一些函数,处理节点和属性,所以在序列化之前搜索或者编辑是非常容易的。
2.提供基本HtmlCleanerDOM的XPath支持
3.使用XML配置文件让创建定制tag变得更加容易
4.修复多个bug以及API改进
展开内容
8.0/1,323.7M
橘子天气是一款很好用的手机天气预报查询助手。这里包含了各种强大的功能,不仅可以实时天气预报、天气预测。还有一些天气预警、日历赚取,让你不会忘记每一个纪念日哦!橘...
10.0/1,852.8M
ZNetCManager是一款虚拟的串口服务器,在局域网里面如果你使用这个ZNetCManager就会得打很好的效果,他可以形成多个串口服务器,感兴趣的可以使用...
9.6/859.6M
在广州工作的朋友,小编今天给你的手机推荐一款出门必备的软件---沃行讯通!小编相信有的朋友手机上已经安装了这款交通信息服务产品,有了它,在广州不用为交通信息而烦...
7.7/1,687.4M
将星之演武手游是一款以三为国题材的日系动漫画风的即时动作游戏,游戏中的画风非常唯美,加入了丰富的原创故事剧情,玩家将体验到非常激烈的战斗玩法,新颖的三国题材,你...
8.5/524.2M
全网视频app是一款十分优质的电视电影软件,下载该软件后进入,需要用户输入密码,用户可以进入专门的qq群,每天都会有密码更新,还有其它实用软件推荐,感兴趣的小伙...
7.7/1,555.4M
BeachPop游戏是一款非常好玩的消消类手机游戏,游戏中的玩法类似泡泡龙,不过游戏有着独立的画风可以体验,并且BeachPop游戏有着有趣的剧情,让游戏十分好...
10.0/1,020.4M
坏坏猫简化版是一款功能丰富的小说App,致力于让您免费阅读热门网络小说大全。全站全部小说免费阅读,小说光速追更提醒,超好用的快看快读免费全本小说大全电子书阅读器...
7.8/1,901.1M
和平精英独行者直装版是一个特别的游戏版本,该版本加入了各种辅助功能,让玩家可以玩的更轻松,合理运用战术,精准射击战斗,打败各种对手,赢得更多比赛,在这里体验很多...
9.6/646.2M
NeoBookFMFTP是一款主流的服务器上传工具。大多数公司都在使用。非常得不错。有需要的可以来东坡下载使用!NeoBookFMFTP简介NeoBookFMF...
8.9/60.9M
格雷盒子孩子端app是一款家长用来管理孩子手机的软件,家长自己的手机安装家长端app,在孩子的手机上安装孩子端app,绑定账号后,家长就可以随时通过自己的手机管...
7.9/1,811.0M
瑾软便签是一款多功能记录工具,集记事本、便签和日记本于一体,让用户随时记录灵感、生活琐事、购物清单等内容。支持通过标签和颜色分类管理,帮助用户高效整理信息。软件...
8.8/990.8M
有点像爱情公寓的房子,画风和剧情都非常的不错,大家一起住在LovinHouse洛文的房屋,3个女生和3和男生发生的小故事,装扮房间,一起进行互动。游戏背景这是一...
8.4/1,527.1M
小辣鸡分垃圾手游是一个垃圾分类小游戏,游戏中有许多关卡,每一个关卡都有各种类型的垃圾,你需要将每一个垃圾进行分类!游戏介绍一款垃圾分类小游戏,常规答题之余,还加...
8.5/676.7M
三国演义之天策采用的是经典正宗的历史时间故事情节,游戏由网页游戏复刻移植而来,玩家将会以乱世豪杰的身份进入到三国世界中,大中型的演译磨练竞技场,决战城池任你ho...
9.5/872.0M
香肠派对梦想插件是一款简单好用的游戏辅助工具,具有框架防闪、绘制功能、内存功能、基础功能等全方位的辅助工具,可以自定义设置开启的辅助功能,让你玩游戏更爽!香肠派...
8.4/228.0M
该大学主题班会ppt之2018大学国庆节主题班会ppt课件共由29页组成,是一份内容十分优秀的ppt课件,下文是该ppt课件的内容摘选及预览图,如果你需要这份2...
9.9/1,483.8M
征途2手游电脑版是一款由原班人马倾情打造的国战手游,今天开始内测了pc端也可以玩,采用手游时代全新制作技术历练制作而成。游戏介绍《征途2》手游由原班人马倾情打造...
8.6/1,472.9M
破碎黎明2领李逍遥无限商城版游戏提供了一个广阔的开放世界供玩家自由探索。你可以穿越各种地形,从茂密的森林到废弃的城镇,发现隐藏的宝藏、任务和敌人。游戏采用流畅而...
9.3/756.5M
天天音频转换专家是一款很不错的音频转换软件,这款软件功能非常的强大,支持市面上常见的音频格式转换,非常的好用,有需要的欢迎前来下载使用!软件介绍天天音频转换专家...
7.7/1,316.0M
openai中文版最新版是一款智能工具,与最近爆火的ChatGPT一样,也是一款能生成丰富完整文字答案的工具,不管你在上面问些什么,你都能得到不错的结论,闲得无...
8.3/1,694.3M
ImagePropertiesContextMenu插件是一款非常好用的谷歌浏览器插件,可以帮助你隐藏图片的属性功能,非常实用,安全可靠,内存占用十分小!插件介...
9.8/855.4M
手机上玩消除游戏,是手机一族的最爱,用豪华泡泡龙来打发你的零碎时间更是你最佳的选择!豪华泡泡龙是手机上最好玩的消除游戏,在这里不仅是考验你的眼力,还有你的智力哦...
7.7/1,795.3M
车库放心车app是二手车辆交易服务平台,车库放心车app中拥有各种车型,不管你想买什么车辆,平台上应有尽有;热门车源供你挑选;买车卖车都在车库放心车!车库放心车...
8.6/1,920.6M
组合战争是一款战争策略手游,在游戏中玩家可以合成属于自己的军队,游戏中有着超对怪物角色供你合成,百变外形,玩起来时时刻刻都有一种新奇感,感兴趣的小伙伴快来东坡下...
8.1/375.2M
中国石化加油卡掌上营业厅app是一款中国石化推出的手机app,具有加油卡管理、查询、充值等功能,大大方便车主,欢迎来下载!中国石化加油卡掌上营业厅app功能1、...