本文共 1251 字,大约阅读时间需要 4 分钟。
最近在做html页面转化成jsf页面的工作,尝试过使用正则表达式、dom4j等方法,都没有取得很好的结果。(html-->jsf会另写一篇文章进行讨论)现在在使用htmlparser对html进行解析,对于html页面的解析htmlparser是一个功能比较强大的工具(相关下载:)。以下是经常使用的对页面解析的两种方法,简单的总结了这两种方法的实现步骤,希望在这里抛砖引玉,有这方面编程经验的们,能参与讨论,怎样用它来进行html-->jsf的转换。
一、利用NodeFilter对网页进行分析1、生成一个Parsera.通过url提取网络上的网页Parser parser = new Parser();parser.setURL("http://www.yahoo.com.cn");b.提取本地网页文件通过读文件把网页文件转化成字符串;Parser parser=Parser.createParser(html,charset);2、利用NodeFilter做一个filtera.利用Tag NameNodeFilter filter=new TagNameFilter("IMG");b.利用Tag ClassNodeFilter filter = new NodeClassFilter(ImageTag.class);3、通过匹配filter,得到所有符合条件的TagNodeList list=parser.extractAllNodesThat(filter);for(int i=0;i String content=list.elementAt(i).toHtml();//得到符合条件的Tag内容如果针对具体情况进行更加详细的处理,则:ImageTag imageTag=(ImageTag)list.elementAt(i); …………}然后根据需要做相应的处理。 二、利用Visitor对网页进行分析 1、生成一个Parser a.通过url提取网络上的网页Parser parser = new Parser();parser.setURL("http://www.yahoo.com.cn");b.提取本地网页文件通过读文件把网页文件转化成字符串;Parser parser=Parser.createParser(html,charset);2、用visitor访问页面ex:ObjectFindingVisitor visitor=new ObjectFindingVisitor(); parser.visitAllNodesWith(visitor);3、通过特定的visitor得到符合条件的TagNode[] nodes=visitor.getTags();for(int i=0;i ImageTag imageTag=(ImageTag)nodes[i]; …………//根据需要做特定处理}
转载地址:https://blog.csdn.net/thamsyangsw/article/details/4448873 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!