zoukankan      html  css  js  c++  java
  • HtmlParser读书笔记

    1,Node有三种实现,分别是RemarkNode,用于保存注释。TextNode也很简单,就是用户可见的文字信息。TagNode是最复杂的,包含了HTML语言中的所有标

    签,而且可以扩展放入。TagNode包含两类,一类是简单的Tag,实际就是不能包含其他Tag的标签,只能做叶子节点。另一类是CompositeTag,就是可以包含其他Tag,是分支节点。

     

    2,Node中包含的方法有几类:

    对于树型结构进行遍历的函数,这些函数最容易理解:

    Node getParent ():取得父节点  NodeList getChildren ():取得子节点的列表  Node getFirstChild ():取得第一个子节点

    Node getLastChild ():取得最后一个子节点  Node getPreviousSibling ():取得前一个兄弟  Node getNextSibling ():取得下一个兄弟节点

    取得Node内容的函数:

    String getText ():取得文本  String toPlainTextString():取得纯文本信息。  String toHtml () :取得HTML信息(原始HTML)

    String toHtml (boolean verbatim):取得HTML信息(原始HTML)  String toString ():取得字符串信息(原始HTML)

    Page getPage ():取得这个Node对应的Page对象  int getStartPosition ():取得这个Node在HTML页面中的起始位置

    int getEndPosition ():取得这个Node在HTML页面中的结束位置

    用于Filter过滤的函数:

    void collectInto (NodeList list, NodeFilter filter):基于filter的条件对于这个节点进行过滤,符合条件的节点放到list中。

    用于Visitor遍历的函数:

    void accept (NodeVisitor visitor):对这个Node应用visitor

    用于修改内容的函数,这类用得比较少:

    void setPage (Page page):设置这个Node对应的Page对象  void setText (String text):设置文本  

    void setChildren (NodeList children):设置子节点列表

    其他函数:

    void doSemanticAction ():执行这个Node对应的操作(只有少数Tag有对应的操作)  Object clone ():接口Clone的抽象函数。

    参考网址:http://allenj2ee.iteye.com/blog/222455

    3,Filter类

    Filter就是对于结果进行过滤,取得需要的内容。HTMLParser在org.htmlparser.filters包之内一共定义了16个不同的Filter,也可以分为几类。

    判断类Filter:

    TagNameFilter  HasAttributeFilter  HasChildFilter  HasParentFilter  HasSiblingFilter  IsEqualFilter

    逻辑运算Filter:

    AndFilter  NotFilter  OrFilter  XorFilter

    其他Filter:

    NodeClass  FilterStringFilter  LinkStringFilter  LinkRegexFilter  RegexFilter  CssSelectorNodeFilter

    所有的Filter类都实现了org.htmlparser.NodeFilter接口。这个接口只有一个主要函数:

    boolean accept (Node node)

    参考网址:http://blog.csdn.net/yanjun_xiaoli/article/details/4291865

  • 相关阅读:
    2019年8月下旬
    2019年8月上旬
    2019年7月 vue专题
    2019年7月上
    mysql安装 demo [linux centos7] [5.7.26]
    记一个日志冲突——管中窥豹[java混乱的日志体系]
    Mybatis-Generator demo
    dubbo doc入门文档
    springBoot+mysql+mybatis demo [基本配置] [遇到的问题]
    nginx安装demo
  • 原文地址:https://www.cnblogs.com/zhongwh/p/2575756.html
Copyright © 2011-2022 走看看