HTMLParser は、解析された情報をツリー構造として保存します。ノードは、情報を保存するためのデータ型の基礎です。
Node の定義を見てください:
public interface Node extends Cloneable;
Node にはいくつかの種類のメソッドが含まれています:
ツリー構造を横断する関数については、これらの関数が最も理解しやすいです:
Node getParent ():取得父节点 NodeList getChildren ():取得子节点的列表 Node getFirstChild ():取得第一个子节点 Node getLastChild ():取得最后一个子节点 Node getPreviousSibling ():取得前一个兄弟(不好意思,英文是兄弟姐妹,直译太麻烦而且不符合习惯,对不起女同胞了) Node getNextSibling ():取得下一个兄弟节点
Node のコンテンツを取得する関数:filterフィルタリングに使用される
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页面中的结束位置
void collectInto (NodeList list, NodeFilter filter):基于filter的条件对于这个节点进行过滤,符合条件的节点放到list中。
機能:
機能コンテンツの変更に使用されますが、このタイプはあまり使用されていません。実際には、HTML ページを処理するために HTMLParser を最もよく使用します。Filter または Visitor 関連の関数が必要であり、1 番目と 2 番目のタイプの関数が最もよく使用されます。最初のタイプの関数を理解するのが簡単です。例を使用して 2 番目のタイプの関数を説明します。
以下はテストに使用したHTMLファイルです:
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的抽象函数。
===================== = ===========================
最初のノードのコンテンツの場合、対応する行は の方がわかりやすいですね。
getPlainTextString を使用すると可能になります。ユーザーに表示されるものはすべて含まれます。興味深い点が 2 つあります。まず、
タグ内の Title コンテンツはプレーンテキストであるため、タイトル内に表示されていても表示される可能性があります。さらに、前述したように、HTML コンテンツ内の改行やその他の文字もプレーンテキストになっています。これは少し論理的な問題のようです。