java htmlcleaner_浅谈HtmlCleaner+XPath解析html或者xml

解析html或者xml可以选用:

DocumentBuilder或者HtmlCleaner

DocumentBuilder与js中document没有太大的区别,而且不适用,在此不过多介绍。

进入正题:

HtmlCleaner是一个开源的Java语言的Html文档解析器。HtmlCleaner能够重新整理HTML文档的每个元素并生成结构良好(Well-Formed)的 HTML 文档。默认它遵循的规则是类似于大部份web浏览器为创文档对象模型所使用的规则。然而,用户可以提供自定义tag和规则组来进行过滤和匹配。它被设计的小,快速,灵活而且独立。HtmlCleaner也可用在Java代码中,当命令行工具或Ant任务。 解析后编程轻量级文档对象,能够很容易的被转换到DOM或者JDom标准文档,或者通过各种方式(压缩,打印)连续输出XML。

代码部分:

首先我们要创建一个HtmlCleaner

HtmlCleaner htmlCleaner = new HtmlCleaner();

然后我们就可以用他来获取文件了。

TagNode tagNode= htmlCleaner.clean(content);

content可以是文件,也可以是hmtl字符串。

主要方法:

Object[] tbodyNodeArray = tagNode.evaluateXPath(XPath);

这里XPath为你要读取的目录,可以是/body/table[2]/tbody/tr/td[2]/table[4]/tbody/tr/td/table/tbody

这样,直接读取到table。

也可以直接读取你所需要的值,这里xpath的目录怎么获取呢?

首先你需要安装一个火狐浏览器,然后在插件中找到火狐调试模式插件。然后再你想要读取的html中按f12键,就会有显示html中内容直接上截图以便大家能够更清晰的理解:

e7b4ecf04a75e5425e65a2ae75c396f7.png

这里从body中选取你要读取的内容如图:

844b52a19c4dc8fe4a0d55063824a3d7.png

然后右键复制xpath,就可以读取到你要内容了。

直接把目录给到td或者table都可以。给大家贴一段我的代码,相信大家就可以清晰的知道步骤了:

tagNode =htmlCleaner.clean(content);

Object[] tbodyNodeArray=tagNode.evaluateXPath(XPath);for (Object tbodyNode : tbodyNodeArray) {//tbody

TagNode tbody =(TagNode) tbodyNode;

Object[] trNodeArray=tbody.getChildTags();for (Object trNode : trNodeArray) {//tr

TagNode tr =(TagNode) trNode;

Object[] tdNodeArray=tr.getChildTags();for (Object tdNode : tdNodeArray) {//td

TagNode td =(TagNode) tdNode;//td.getText();//输出值 }

}

}

以上就是xpath解析步骤,相信可以给大家一个思路了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值