htmlparser Visitor和filter的区别是什么htmlparser 有两种访问方式,一个是visitor 还有一个是filter,那么这两者到底有什么区别呢?或者说为什么要分两种方式

来源:学生作业帮助网 编辑:作业帮 时间:2024/11/17 19:33:39

htmlparser Visitor和filter的区别是什么htmlparser 有两种访问方式,一个是visitor 还有一个是filter,那么这两者到底有什么区别呢?或者说为什么要分两种方式
htmlparser Visitor和filter的区别是什么
htmlparser 有两种访问方式,一个是visitor 还有一个是filter,那么这两者到底有什么区别呢?或者说为什么要分两种方式

htmlparser Visitor和filter的区别是什么htmlparser 有两种访问方式,一个是visitor 还有一个是filter,那么这两者到底有什么区别呢?或者说为什么要分两种方式
我没使用过HtmlParser,你是指 sourceforge 网站上那个开源的的 HtmlParser API
一般说概念上讲 visitor 只是表示,”伙计,当前我正在看到XXX,你想了解这个XXX么?“,它表示你当前正在扫描一个节点时触发了事件,告诉你当前正在哪个位置,比如,正遍历 节点的收尾处;
而 filter 则只告诉你正在准备遍历一个节点,你得告诉 API 这个节点是否符合条件(它将返回到结果集中,如果不符合条件就不会返回到结果集中).比如一个 NodeClassFilter 当然会有一个条件来指明我们需要命中哪个 java class 类型的 Node (TextNode,TagNode,RemarkNode,...),而一个 CssSelectorNodeFilter 而是找出使用了指定的 Css selector 参数的节点.这里的 Filter 一般用来搜索或迭代,比如搜索符合条件的子节点或迭代一个元素的所有子节点时我们可以给定条件只看符合条件的节点.
当 XML 在解释时会触发事件,Visitor 就相当于以前的 SAX 的 startElement / endElement 事件一样,每到事件出现时就会调用 Visitor 的对应方法;而 Filter 则是到了某个可能的节点时都询问是否符合条件.