
类型: 兴趣社交 版本: V1.5
大小: 1,495.8 时间: 2025-11-19





写一个测试用的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改进
它被设计的小,快速,灵活而且独立。HtmlCleaner也可用在Java代码中,当命令行工具或Ant任务。解析后编程轻量级文档对象,能够很容易的被转换到DOM或者JDom标准文档,或者通过各种方式(压缩,打印)连续输出XML。
赚零钱怎么样
507.9M
贰麻快捷指令app可以选择你想要修改的应用图标,换成自己喜欢的图标,软件为大家提供了一些好看的图标,当然如果大家有自己喜欢的图标也可以导入使用,软件还有一些特色...
喜乐棋牌苹果下载
1,632.2M
冥界契约是一款非常好玩的防守类型的地图。小编这里为大家带来的是4.8冰雪奇缘版本!在新版本中,不仅新增了英雄,而且玩法也有所改变!具体介绍,就快接着看下去吧!冰...
有什么方法能赚钱
1,965.8M
数字土木app官方下载,这是土木建筑行业管理人员的掌上办公软件,一键签到,添加日志,记录施工进度、材料库存、对接工程等多个功能管理,提升工作效率。数字土木app...
时时彩一天能赚一千吗
1,176.1M
圣斗士集结圣域,黄金圣衣闪耀觉醒。横版放置闯关游戏《破阵勇士》是一款以卡牌对战为核心的策略塔防手游,玩家可以收集经典的动漫角色,组建自己的最强战队。游戏结合了卡...
网站建设 兼职
1,507.2M
旅游出行计划攻略软件,旅行打卡攻略分享,查看其他用户发布的攻略,发现各个城市的美丽,热门景点路线规划,订制旅行计划,诗和远方总有一个在路上。蜗途旅行攻略介绍1、...
棋牌游戏注册送888元的
1,240.7M
打造你的梦幻之城;游戏拥有高自由度的玩法,没有任何的规则限制,这里的房屋样式全由你来决定,将你梦想中的城镇在这里一点点的建造,喜欢的朋友就来梦幻之城游戏中自由探...
天命传说怎么样赚钱
1,400.0M
宝宝小时光记录app是一款多功能母婴成长记录软件,适合新手父母使用,可以随时添加宝宝的信息,随时选择记录宝宝各方面成长数据,包含了喂养、睡眠和其他方面数据,能够...
神来棋牌牛牛作弊器
684.6M
星战航线母巢之战是一款非常好玩的策略战争类游戏,游戏有点像星际争霸,游戏中分为三个种族,虫族、人族、神族,玩家选择其中一个发展自己的兵力,去攻打其它两个种族,快...
127黑产团伙
1,893.5M
碰碰旺app是一款金融科技云平台,主要服务的是中小型企业,可以帮助企业找客户,打资金,找产品,抢单,查看数据报单,抢单等等功能,软件功能强大,使用简单。使用注意...
手机挣钱软件排名第一
1,127.8M
桌面数据库是一个高效的数据管理、表格制作、富文本编辑平台,功能强大,适用范围广,各行业均可使用。桌面数据库功能1、自由创建、修改、管理、操作表:有详细的使用介绍...
在家做兼职手工靠谱吗
337.6M
这是一款冒险短跑游戏,在朗尼团队短跑(LonneyTunesFightTeamDash)中玩家需要躲避随处而来而来的障碍物,并且在关卡中拾取更多的金币,并且顺利...
325棋牌老版
791.2M
私家书藏盒子是一款专注于线上阅读的软件,提供了丰富的电子书籍资源,让用户可以随时随地享受到阅读的乐趣。汇集了各类电子书籍,包括小说、文学、科技、历史、哲学等多种...
国外现在最好赚钱地方
1,950.9M
小小传奇2是一款经典传奇题材的rpg战斗手游。相信很多小伙伴对传奇游戏都不陌生,这款小小传奇2不仅在玩法上还原了经典传奇内容,更加入了一些有趣的元素哦。还有炫酷...
在网上怎么做兼职校对
619.9M
少年得到app是专门针对青少年打造的一款学习软件,提供了丰富的学习视频,汇集众多名校特级教师,整理了详细的知识点,有效的提升孩子的学习成绩。少年得到app使用方...
企业债券交易怎么赚钱
1,726.2M
简单的益智闯关类型的小游戏--飞的更快(FasterFlappyintheworld),是一款驾驶着小飞船需要通过各种各样的陷阱的游戏,沿途还有大量的小星星可以...
上海怎么月赚20000
2025/11/10 16:24
大奖网能提现吗
2025/11/17 03:41
pk十网赚团队
2025/11/11 23:09
用电不花钱怎么赚钱
2025/11/19 13:00
fly团队手机赚钱
2025/11/18 19:27
瓯乐棋牌官网
2025/11/14 02:26
如果赚钱还要别人
2025/11/06 13:47
3d模型网站赚钱吗
2025/11/07 13:08
2022新大圣棋牌
2025/11/14 01:55
注册送分提现的游戏
2025/11/12 13:21
看新闻赚钱哪个赚最多
2025/11/10 13:14
户外偏门字
2025/11/05 05:43
兼职个人
2025/11/05 03:07
自媒体是什么如何赚钱
2025/11/09 22:16
周末兼职qq群西安
2025/11/20 23:01
周末兼职qq群西安
2025/11/20 23:01更新
2016新年工作计划ppt模板,告诉你计划的重要性。不管做什么,都要有计划,那么如果要让我们把工作计划用ppt展示出来的话,在这2016新的一年里,我们会选择用...
支持 ( 19 ) 盖楼(回复)
支持 ( 63 ) 盖楼(回复)
支持 ( 118 ) 盖楼(回复)
支持 ( 71 ) 盖楼(回复)
支持 ( 16 ) 盖楼(回复)
支持 ( 36 ) 盖楼(回复)
支持 ( 136 ) 盖楼(回复)
支持 ( 78 ) 盖楼(回复)
支持 ( 8 ) 盖楼(回复)
支持 ( 29 ) 盖楼(回复)
支持 ( 194 ) 盖楼(回复)
支持 ( 17 ) 盖楼(回复)
支持 ( 126 ) 盖楼(回复)
支持 ( 120 ) 盖楼(回复)
支持 ( 188 ) 盖楼(回复)
支持 ( 5 ) 盖楼(回复)
支持 ( 50 ) 盖楼(回复)
支持 ( 5 ) 盖楼(回复)
支持 ( 111 ) 盖楼(回复)
支持 ( 34 ) 盖楼(回复)