HTMLParser的核心模組是org.htmlparser.Parser類,這個類實際完成了對於HTML頁面的分析工作。這個類有下面幾個建構函式:
public Parser ();public Parser (Lexer lexer, ParserFeedback fb);public Parser (URLConnection connection, ParserFeedback fb) throws ParserException;public Parser (String resource, ParserFeedback feedback) throws ParserException;public Parser (String resource) throws ParserException;public Parser (Lexer lexer);public Parser (URLConnection connection) throws ParserException;public static Parser createParser (String html, String charset);//靜態類
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的抽象函數。
類架構圖: