zoukankan      html  css  js  c++  java
  • atitit. java jsoup html table的读取解析 总结

    atitit. java jsoup html table的读取解析 总结

    1. 两个大的parser ,,,jsoup 跟个   htmlparser 1

    2. 资料比较 1

    3. jsoup越佳.. 1

    4. 解析并提取 HTML 元素的模式选择器 and  DOM 方式 ) 2

    5. html修改 2

    6. 跟个htmlparse的比较 2

    7. jsoup的用处 3

    7.1. html解析 3

    7.2. html修改 3

    7.3. HTML 文档清理 3

    8. code--读取解析表格2Lisp<Map> 3

     html table的读取

    1. 两个大的parser ,,,jsoup 跟个   htmlparser

    2. 资料比较

    jsoup  百度为您找到相关结果约321,000个

    htmlparser 百度为您找到相关结果约113,000个

    3. jsoup越佳..

    运用 jsoup 对 HTML 文档进行解析和操作(HTMLParser好) 

    Java 程序在解析 HTML 文档时,相信大家都接触过 htmlparser 这个开源项目,我曾经在 IBM DW 上发表过两篇关于 htmlparser 的文章,分别是:从 HTML 中攫取你所需的信息和?扩展 HTMLParser 对自定义标签的处理能力。但现在我已经不再使用 htmlparser 了,原因是 htmlparser 很少更新,但最重要的是有了 jsoup 。

    作者:: 老哇的爪子 Attilax 艾龙,  EMAIL:1466519819@qq.com

    转载请注明来源: http://blog.csdn.net/attilax

    4. 解析并提取 HTML 元素的模式选择器 and  DOM 方式 )

    这部分涉及一个 HTML 解析器最基本的功能,但 jsoup 使用一种有别于其他开源项目的方式――选择器,我们将在最后一部分详细介绍 jsoup 选择器,本节中你将看到 jsoup 是如何用最简单的代码实现。

    不过 jsoup 也提供了传统的 DOM 方式的元素解析,看看下面的代码

    5. html修改

    修改数据

    在解析文档的同时,我们可能会需要对文档中的某些元素进行修改,例如我们可以为文档中的所有图片增加可点击链接、修改链接地址或者是修改文本等。

    下面是一些简单的例子:


    清单 4.

    doc.select("div.comments a").attr("rel", "nofollow"); // 为所有链接增加 rel=nofollow 属性 doc.select("div.comments a").addClass("mylinkclass"); // 为所有链接增加 class=mylinkclass 属性 doc.select("img").removeAttr("onclick"); // 删除所有图片的 onclick 属性 doc.select("input[type=text]").val(""); // 清空所有文本输入框中的文本 

    道理很简单,你只需要利用 jsoup 的选择器找出元素,然后就可以通过以上的方法来进行修改,除了无法修改标签名外(可以删除后再插入新的元素),包括元素的属性和文本都可以修改。

    修改完直接调用 Element(s) 的 html() 方法就可以获取修改完的 HTML 文档。

    6. 跟个htmlparse的比较

    与 htmlparser 项目不同的是,jsoup 并没有为 HTML 元素定义一个对应的类,一般一个 HTML 元素的组成部分包括:节点名、属性和文本,jsoup 提供简单的方法供你自己检索这些数据,这也是 jsoup 保持瘦身的原因。

    而在元素检索方面,jsoup 的选择器简直无所不能,

    这是 jsoup 真正让我折服的地方,jsoup 使用跟 jQuery 一模一样的选择器对元素进行检索,以上的检索方法如果换成是其他的 HTML 解释器,至少都需要很多行代码,而 jsoup 只需要一行代码即可完成。

    jsoup 的选择器还支持表达式功能,我们将在最后一节介绍这个超强的选择器。

    7. jsoup的用处

    7.1. html解析

    7.2. html修改

    7.3. HTML 文档清理

    8. code--读取解析表格2Lisp<Map>

    prj.wechatadm4prp

    package com.attilax.html;

     import org.jsoup.Jsoup;

    import org.jsoup.nodes.Document;

     import org.jsoup.nodes.Element;

    import org.jsoup.select.Elements;

    //import com.attilax.cc.Document;

    import com.attilax.io.pathx;

    import com.attilax.lang.core;

    import com.attilax.lang.json.JsonX;

    import com.attilax.util.AngularJsX;

    @SuppressWarnings("all")

    public class HtmlX {

    public static void main(String[] args) {

    Stringjsppath="applyInstall\appinst_list.jsp";

    jsppath="aa/bb";

    jsppath=jsppath.replaceAll("/""\\");

    System.out.println(jsppath);

    List li=getTitlesMap(jsppath,"tabid1","utf-8");

    System.out.println(JsonX.toJsonStrO88(li));

    }

    /**

     * 

     * @param jsppath   %app%/path

     * @param tableId

     * @param htmlEncode

     * @return

     */

    public static List<Map> getTitlesMap(String jsppath, String tableId,String htmlEncode) {

    jsppath=pathx.delWebappPrefix(jsppath);

    jsppath=jsppath.replaceAll("/""\\");

    jsppath=pathx.webAppPath()+"\"+jsppath;

    List li=new ArrayList();

    File input = new File(jsppath);

    try {

    Document doc = Jsoup.parse(inputhtmlEncode"http://example.com/");

    Element tab_elmt=doc.getElementById(tableId);

    Elements   trs=   tab_elmt.getElementsByTag("tr");

    Element titleTr=trs.get(0);

    Element  fldTr=trs.get(1);

    Elements tds=titleTr.getElementsByTag("td");

    if(tds.size()==0)

    tds=titleTr.getElementsByTag("th");

    Elements tds_fld=fldTr.getElementsByTag("td");

    for(int i=0;i<tds.size();i++)

    {

    Element td=tds.get(i);

     Map m=new HashMap();

     m.put("title"td.text());

     String fld1=tds_fld.get(i).text();

     String fld=AngularJsX.getFld_sf(fld1);

     m.put("fld"fld);

     if(fld.length()>0)

     li.add(m);

    }

     

     

    catch (IOException e) {

     

    throw new RuntimeException(e);

    }

    return li;

    }

    }

    参考

    运用 jsoup 对 HTML 文档进行解析和操作(HTMLParser好) _HTML_CSS_代码迷.htm

    使用 jsoup 对 HTML 文档进行解析和操作.htm

  • 相关阅读:
    1093. Count PAT's (25)
    1092. To Buy or Not to Buy (20)
    机器学习实战——k-邻近算法:约会网站
    1057. Stack (30)
    1017. Queueing at Bank (25)
    strcpy、strncpy和memcpy的用法比较
    华为笔试题--蛇形矩阵
    对于内核执行过程的理解
    pom.xml格式问题
    Json反序列化遇到的问题
  • 原文地址:https://www.cnblogs.com/attilax/p/5963734.html
Copyright © 2011-2022 走看看