写一个测试用的html文件:html-clean-demo.html自动挂机赚钱系统APP
<!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。
展开内容
查看
7.5/1,997.6M
阅读星Pro手机版,是一款最新的免费的专业级别的阅读软件,非常强大的云阅读功能,还有最新的互动玩法,喜欢就快来下载试试吧!阅读星Pro手机版功能介绍独家内置百度...
9.9/929.3M
Alexa排名批量查询专家是一款界面清爽简单,操作方便,功能强大,绿色安全,完全免费的Alexa排名查询软件。能快速确定目标网址的alexa排名。本软件测试完毕...
9.3/1,733.8M
熊东东绘本app是一款专为儿童设计打造的绘本阅读平台,题材丰富有趣,画风精美,能很好的吸引小孩子,开拓小孩子的视野和思考能力,有需要的朋友可以来下载体验!伴鱼绘...
8.0/166.2M
很好用的一款手机磁力软件,支持搜索各种磁力链接,就爱看磁力app网络了很多的资源,在线磁力解析下载,可以观看很多的大片。就爱看磁力特色1、支持ftp、edk、h...
9.3/1,233.2M
AI写作帮APP官方最新版免费下载!这是一款智能AI写作神器,覆盖职场、媒体、教育、生活等多场景,提供简历制作、邮件撰写、短剧脚本生成、文案改写等热门工具,一键...
9.2/861.1M
手机上的资料想要打印出来,很多时候还必须发送到电脑上操作,其它安装一个PrinterShare移动打印机就可以做到的,它能快速打印你手机上的文件、相片、联络信息...
8.5/1,908.1M
一款简简单单的小游戏,玩家在这里手里握着一把锤子,具体的玩法就是利用这把锤子凿穿模板幕墙以及敌人,打败敌人,给予敌人致命一击,先是需要闯关增强你的锤子的等级,提...
9.8/1,106.8M
宝惠水务管理平台/CloudCS包括宝惠科技的web端数据平台和手机端水务专用APP,管理人员可以随时随地查看数据,打印趋势图和报表,对比监测数据等,平台凭借宝...
9.2/717.3M
Barbara-ian是一款非常好玩的格斗类游戏,这款游戏的画风有点方块向,在游戏当中你可以看到不管是游戏的角色都有着块状,游戏人物还有着多个你能可以使用,感兴...
9.8/578.1M
剑魂之刃是最近很多的一款动作手游,这款游戏中有着众多的角色,每一个都有着各种不同的属性,并且这款游戏与端游DNF的玩法有点像。喜欢这款游戏的朋友就来东坡下载吧。...
9.3/349.1M
爱站竞价词挖掘工具可以帮助一些有需要的用户快速的找到自己网站的一些竞价词,所以这个是很多的站长都是有需要使用到的工具,不知道怎么使用的现在也是可以来本站这里看看...
9.6/175.9M
骑战三国满V版是一款三国策略手游,在游戏里玩家将会展开趣味的卡牌手游,在游戏里玩家将会展开趣味的搜集玩法,武将的搜集战斗,还有诸多趣味的阵容选择哦!骑战三国满V...
8.1/740.3M
群英之战是3d类的手机动作三国题材游戏,在这里书写自己的传奇历史,流畅顺滑操作手感,畅爽超刺激,重温三国剧情,感受不一样的游戏激情吧。群英之战手游简介《群英之战...
9.7/1,531.3M
霸者归来(0.1折天降真充)bt版感觉这个版本是玩的最爽的了,主要是送免单啊,0.1折送免单的版本玩起来更爽,送免费的GM特权,福利比之前的版本还是要好很多的,...
8.9/1,674.2M
众享教育app学习界面的初中板块,不仅涵盖了丰富的在线学习资源,还针对不同学科提供了各种实用的服务和功能。用户可以找到各种初中阶段的教材、教辅、视频课程等资源,...
8.6/1,623.3M
友舱网是一款空运物流软件,结合空运专家评审推荐全国优质航线,利用格式化询价请求与智能化报价方案打通上下游沟通渠道,想订机票一样订货舱,价格透明,通过电脑或者手机...
8.3/1,543.6M
是一款为用户提供简洁功能的音乐播放器软件,用户可以在这里自由的调整音乐效果,可以随意的搜索喜欢的歌曲在线来听,还支持自定义收藏夹收藏歌曲!一点音乐简介一款极其简...
9.7/382.8M
疯狂液体怪物是一款以粘液为背景的休闲创意手游。游戏有着丰富的玩法内容,玩家将制作粘液然后开始进行游戏。多种游戏模式,新颖的史莱姆游戏。自由的发挥自己的创意,做出...
9.0/1,839.8M
猛犸电动app是一款电动车服务软件,车主可以通过app绑定自己的电动车,让你用车更方便,随时随地查询电动车状况!软件介绍猛犸电动app是一个简单易用的电动车管理...
9.1/1,192.7M
求生指南第三人称是现在非常的火爆的单机游戏了,不过很多喜欢玩这款游戏的朋友都是少不了是需要各种各样的游戏修改器的,那么现在东坡小编就给你精心的准备好了求生指南第...
9.2/192.5M
怒剑传说是一款根据中国古典小说山海经改编而成的手游,游戏中将还原了中国古典画风,同时还兼具二次元的神话传说,游戏中画质非常高清,唯美妖姬。《怒剑传说》游戏介绍《...
8.7/1,551.4M
中医执业医师app是基于医考帮打造的一款中医执业医师学习软件,这里涵盖了最全面的医学考研内知识,最丰富的题库,支持在线学习和答题,还有错题和笔记的功能,想要考中...
8.8/1,940.9M
三国志战棋版oppo客户端版本,是专为oppo手机打造的版本,oppo系列手机有oppo,Reno等系列,玩这款三国神作最好不过了。城池激荡,战棋对垒,千变万化...
8.1/694.0M
电脑随机抽奖软件(随机抽号器),一款随机数生成器,它操作简单,方便使用,功能强大,能以一种简便的方式让您真正的生成随机或整数,帮助你随机抽取号码哦,有需要的赶紧...