1 常用的几个过滤器说明
判断类Filter:
TagNameFilter 根据Tag的名字进行过滤
HasAttributeFilter 可以匹配出包含制定名字的属性,或者制定属性为指定值的节点
HasChildFilter 是返回有符合条件的子节点的节点,需要另外一个Filter作为过滤子节点的参数。
HasParentFilter 与HasChildFilter类似。
HasSiblingFilter 与HasChildFilter类似。
逻辑运算Filter
AndFilter 是结合几种过滤条件的'与'过滤器
NotFilter 是结合几种过滤条件的'或'过滤器
OrFilter 是结合几种过滤条件的'或'过滤器
其他Filter:
NodeClassFilter 根据已定义的标签类获取节点
StringFilter 这个Filter用于过滤显示字符串中包含指定内容的标签节点。注意是可显示的字符串,不可显示的字符串中的内容(例如注释,链接等等)不会被显示
LinkStringFilter 这个Filter用于判断链接中是否包含某个特定的字符串,可以用来过滤出指向某个特定网站的链接。
LinkRegexFilter 这个Filter用于根据正则表达式匹配链接,可以用来过滤出指向某个特定网站的链接。
RegexFilter 根据正则表达式匹配节点.与LinkRegexFilter不同的是,LinkRegexFilter只在LinkTag中寻找匹配
自定义:
NodeFilter 自定义过滤器
2 Tag类
Remark:注释
AppletTag:
BaseHrefTag:
Body Tag:"BODY";//getBody();内部调用额是toPlainTextString();
Bullet:"LI"
BulletList:"UL","OL"
CompositeTag:
DefinitionList:"DL"
DefinitionListBullet:"DD","DT"
Div:"DIV"
DoctypeTag:“!DOCTYPE"
FormTag:
FrameSetTag:
FrameTag:
HeadingTag:"H1","H2","H3","H4","H5","H6"
HeadTag:"HEAD"
Html:"HTML"
ImageTag:
InputTag:"INPUT"
JspTag:"%","%=","%@"
LabelTag:"LABEL"
LinkTag:
MetaTag:
ObjectTag:
OptionTag:
ParagraphTag:"P"
ProcessingInstructionTag:"?"
ScriptTag:
SelectTag:"SELECT"
Span:"SPAN"
StyleTag:"STYLE"
TableColumn:"TD"
TableHeader:"TH"
TableRow:"TR"
TableTag:"TABLE"
TagNode:
TextareaTag:"TEXTAREA"
TitleTag:"TITLE"
TextNode:文本
3 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的抽象函数。