zoukankan      html  css  js  c++  java
  • 浅谈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中内容直接上截图以便大家能够更清晰的理解:
    这里从body中选取你要读取的内容如图:
     
    然后右键复制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解析步骤,相信可以给大家一个思路了

  • 相关阅读:
    【特别推荐】12款最佳的网站速度和性能测试工具
    Skeljs – 用于构建响应式网站的前端开发框架
    EpicEditor – 可嵌入的 JavaScript Markdown 编辑器
    12个学习 CSS3 网站布局设计的优秀案例
    15套流行的扁平化设计的界面素材【免费下载】
    JavaScriptOO.com – 快速找到你需要的 JS 框架
    15款最好的 jQuery Modal(模态窗口)插件
    开眼了!20个极具创意的移动界面动画效果
    ShareDrop – 苹果 AirDrop 服务的 HTML5 实现
    Furatto – 轻量,友好的响应式前端开发框架
  • 原文地址:https://www.cnblogs.com/xiehaoyu/p/3435225.html
Copyright © 2011-2022 走看看