精华帖 (0) :: 良好帖 (0) :: 新手帖 (1) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2007-10-23
最近在做html页面转化成jsf页面的工作,尝试过使用正则表达式、dom4j等方法,都没有取得很好的结果。(html-->jsf会另写一篇文章进行讨论)现在在使用htmlparser对html进行解析,对于html页面的解析htmlparser是一个功能比较强大的工具(相关下载:http://sourceforge.net/projects/htmlparser/)。以下是经常使用的对页面解析的两种方法,简单的总结了这两种方法的实现步骤,希望在这里抛砖引玉,有这方面编程经验的们,能参与讨论,怎样用它来进行html-->jsf的转换。 一、利用NodeFilter对网页进行分析 相关文章:http://www.blogjava.net/lostfire/archive/2006/07/02/56212.html 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2008-04-17
请问一下,怎样将修改过得html保存到文件中
code如下 parser = new Parser(getContentByLocalFile(file)); NodeFilter nt = new NodeClassFilter(ImageTag.class) ; NodeList tmpImageList = (NodeList) parser.parse(nt); /*linkTmpHash = new Hashtable(); for (int i = 0; i < length; i++) { Element tmpElement = (Element) tmpNodeList.item(i); String href = tmpElement.getAttribute("href"); if (href != null && !href.equals("")) { linkTmpHash.put(href, ""); } } data.setHrefs((String[]) linkTmpHash.keySet().toArray(new String[linkTmpHash.size()]));*/ BufferedWriter writer = new BufferedWriter(new OutputStreamWriter (new FileOutputStream (file))); linkTmpHash = new Hashtable(); for (int i = 0; i < tmpImageList.size(); i++) { imgnode = (ImageTag)tmpImageList.elementAt(i); String src = imgnode.getImageURL(); if (URLPathNameUtil.isAbsolutePath(src)) { if (testAbsolutePath) { testImagetag(file,src); } } else { if (testRelativePath) { testImagetag(file, src); } } if(getRealPath()!=null){ imgnode.setImageURL(getRealPath()); writer.write(tmpImageList.toHtml()); } /*if (src != null && !src.equals("")) { linkTmpHash.put(src, ""); }*/ } writer.flush(); writer.close (); 谢谢了 |
|
返回顶楼 | |
发表时间:2008-05-04
water84222 写道 请问一下,怎样将修改过得html保存到文件中
code如下 parser = new Parser(getContentByLocalFile(file)); NodeFilter nt = new NodeClassFilter(ImageTag.class) ; NodeList tmpImageList = (NodeList) parser.parse(nt); /*linkTmpHash = new Hashtable(); for (int i = 0; i < length; i++) { Element tmpElement = (Element) tmpNodeList.item(i); String href = tmpElement.getAttribute("href"); if (href != null && !href.equals("")) { linkTmpHash.put(href, ""); } } data.setHrefs((String[]) linkTmpHash.keySet().toArray(new String[linkTmpHash.size()]));*/ BufferedWriter writer = new BufferedWriter(new OutputStreamWriter (new FileOutputStream (file))); linkTmpHash = new Hashtable(); for (int i = 0; i < tmpImageList.size(); i++) { imgnode = (ImageTag)tmpImageList.elementAt(i); String src = imgnode.getImageURL(); if (URLPathNameUtil.isAbsolutePath(src)) { if (testAbsolutePath) { testImagetag(file,src); } } else { if (testRelativePath) { testImagetag(file, src); } } if(getRealPath()!=null){ imgnode.setImageURL(getRealPath()); writer.write(tmpImageList.toHtml()); } /*if (src != null && !src.equals("")) { linkTmpHash.put(src, ""); }*/ } writer.flush(); writer.close (); 谢谢了 通过写文件就可以了啊。 |
|
返回顶楼 | |
发表时间:2008-05-04
个人感觉要做这个还是Python的BeautifulSoup最好。
|
|
返回顶楼 | |
发表时间:2008-05-04
lz对 html里 通过ajax方式 显示的一些链接 有无好方法 获得?
这些链接在htm 通过查看源码得不到的 而是封装在一些数组里 |
|
返回顶楼 | |
发表时间:2008-05-06
如果你只是想获得这些链接,而不是用Java获得这些链接,那么你可以写个greasemonkey的创建,或者用XUL。
|
|
返回顶楼 | |
浏览 14420 次