首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > CSS >

htmlparser中自定义html标签开展解析

2012-06-28 
htmlparser中自定义html标签进行解析原文出处:http://www.mzone.cc/article/270.html ?? htmlparser是一个

htmlparser中自定义html标签进行解析

原文出处:http://www.mzone.cc/article/270.html

?? htmlparser是一个基于java的用来解析html页面的开源组件,可以很方便对html页面进行标签分析、动态修改、删除特定的html标签等。但有些时候,我们可能需要自定义非HTML标签实现一些额外的功能,比如我经常使用htmlparser解析并处理页面后需要返回最终的处理结果,一般情况下我们获取html这个根标签,然后toHtml()就可以得到了。但如果页面本身就不规范,没有或包含多个html根标签呢?这样就会出现数据遗漏的情况,我这里就来讲下我的处理过程:

1、自定义一个根标签

2、将解析到的HTML内容使用根标签进行包裹

3、再使用htmlparser解析包裹的结果字符串并处理

4、获取自定义的根标签并返回标签内部的内容

5、输出最终的自定义标签的内部内容即可完整输出

????? 首先,我们定义一个我们自己的html标签,在htmlparser中自定义标签需要继承CompositeTag类,该类非常简单,只需要覆写基类的getIds方法即可,如下:

?

????? 然后我们就可以对这个内容进行分析和处理,等分析处理完成后,就需要获取最终的处理html内容,使用如下代码片段来获取:

package cc.mzone.html; /**  * 获取最终的过滤结果  * @param root  * @return  * @throws Exception  */public String getFinalResult(Node root) throws Exception { String result = root.toHtml(); int len = ContainerTag.HTML_CONTAINER_TAG_NAME.length(); return result.substring(len + 2, result.length() - len - 3);}

?

????? 其中root节点就是我们在getRootNode中得到的根节点,也就是我们自定义的html标签,在这个方法中我们仅仅是去掉这个节点的名称而已,从而也就实现了我们想要的目标。使用这个自定义标签可以非常好的解决html格式不标准的问题,从而可以兼容更多的情况和场合。

?

热点排行