クラスParser
java.lang.Object
javax.swing.text.html.parser.Parser
- すべての実装されたインタフェース:
DTDConstants
- 直系の既知のサブクラス:
DocumentParser
public class Parser extends Object implements DTDConstants
DTD駆動型の単純なHTMLパーサーです。 パーサーはInputStreamからHTMLファイルを読み取って、タグやデータを検出すると、各種のメソッド(サブクラスでオーバーライドされる)を呼び出します。
残念なことに、正しく実装されていないHTMLパーサーが数多く出回っています。その結果、フォーマットの正しくないHTMLファイルも多数存在します。 このパーサーは、ほとんどのHTMLファイルの解析を試みます。 すなわち、この実装はHTMLを優先し、SGMLの仕様とは異なっている場合もあります。
このパーサーは、\rおよび\r\nを\nとして扱います。 開始タグの後、および終了タグの前の改行は、SGMLやHTMLの仕様に従って無視されます。
HTML仕様では、空白文字がどのように連続するかについて明確に指定されていません。 特に、次のようなシナリオについては議論されていません(ここでは空白文字を使用するべきだが、空白文字の表示に を使用している)。
「<b>blah <i> <strike> foo」は、「<b>blah <i><strike>foo」として扱われます。
同様に、「<p><a href="xx"> <em>Using</em></a></p>」は、「<p><a href="xx"><em>Using</em></a></p>」として扱われます。
strictがfalseの場合、フローをブレークするタグ(TagElement.breaksFlows)や末尾に空白が見つかると、空白以外の文字が見つかるまで、空白はすべて無視されます。 これにより、一般的なブラウザに動作が近くなります。
- 関連項目:
-
フィールドのサマリー
フィールドインタフェースで宣言されたフィールド DTDConstants
ANY, CDATA, CONREF, CURRENT, DEFAULT, EMPTY, ENDTAG, ENTITIES, ENTITY, FIXED, GENERAL, ID, IDREF, IDREFS, IMPLIED, MD, MODEL, MS, NAME, NAMES, NMTOKEN, NMTOKENS, NOTATION, NUMBER, NUMBERS, NUTOKEN, NUTOKENS, PARAMETER, PI, PUBLIC, RCDATA, REQUIRED, SDATA, STARTTAG, SYSTEM修飾子と型フィールド説明static final intDTD定数はANYに対応static final intDTD定数はCDATAに対応static final intDTD定数はCONREFに対応static final intDTD定数は、CURRENTに対応static final intDTD定数はDEFAULTに対応static final intDTD定数はEMPTYに対応static final intDTD定数はENDTAGに対応static final intDTD定数はENTITIESに対応static final intDTD定数はENTITYに対応static final intDTD定数はFIXEDに対応static final intDTD定数はGENERALに対応static final intDTD定数はIDに対応static final intDTD定数はIDREFに対応static final intDTD定数はIDREFSに対応static final intDTD定数はIMPLIEDに対応static final intDTD定数はMDに対応static final intDTD定数はMODELに対応static final intDTD定数はMSに相当static final intDTD定数はNAMEに対応static final intDTD定数はNAMESに対応static final intDTD定数はNMTOKENに対応static final intDTD定数はNMTOKENSに対応static final intDTD定数はNOTATIONに対応static final intDTD定数はNUMBERに対応static final intDTD定数はNUMBERSに対応static final intDTD定数はNUTOKENに対応static final intDTD定数はNUTOKENSに対応static final intDTD定数はPARAMETERに対応static final intDTD定数はPIに対応static final intDTD定数はPUBLICに対応static final intDTD定数はRCDATAに対応static final intDTD定数はREQUIREDに対応static final intDTD定数はSDATAに対応static final intDTD定数はSTARTTAGに対応static final intDTD定数はSYSTEMに対応 -
コンストラクタのサマリー
コンストラクタ -
メソッドのサマリー
修飾子と型メソッド説明protected voidendTag(boolean omitted) 終了タグを処理します。protected void1番目、2番目および3番目のエラー・メッセージ引数"?"を使用して、エラー・ハンドラを起動します。protected void第2および第3のエラー・メッセージ引数"?"を使用してエラー・ハンドラを呼び出します。protected void3番目のエラー・メッセージ引数"?"を使用してエラー・ハンドラを呼び出します。protected voidエラー・ハンドラを起動します。protected void現在の属性を削除します。protected SimpleAttributeSet現在のタグの属性を返します。protected int現在解析中の行の行番号を返します。protected int現在の位置を返します。protected voidhandleComment(char[] text) HTMLのコメントを検出したときに呼び出されます。protected voidhandleEmptyTag(TagElement tag) 空のタグを検出したときに呼び出されます。protected voidhandleEndTag(TagElement tag) 終了タグを検出したときに呼び出されます。protected voidHTMLコメントを閉じずにコンテンツが終了したときにコールされます。protected voidhandleError(int ln, String msg) エラーが発生したことを示す。protected voidhandleStartTag(TagElement tag) 開始タグを検出したときに呼び出されます。protected voidhandleText(char[] text) PCDATAを検出したときに呼び出されます。protected voidhandleTitle(char[] text) HTMLのtitleタグを検出したときに呼び出されます。protected TagElementTagElementを作成します。protected TagElementTagElementを作成します。protected voidmarkFirstTime(Element elem) ドキュメント内で最初に見つかったタグにマークを付けます。voidDTDが指定されている場合に、HTMLストリームを解析します。ドキュメント・タイプ宣言マークアップ宣言を解析します。protected booleanparseMarkupDeclarations(StringBuffer strBuff) マークアップ宣言を解析します。protected voidstartTag(TagElement tag) 開始タグを処理します。クラスオブジェクトで宣言されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait修飾子と型メソッド説明protected Objectclone()このオブジェクトのコピーを作成して、返します。booleanこのオブジェクトと他のオブジェクトが等しいかどうかを示します。protected voidfinalize()削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。最終決定は非推奨であり、将来のリリースで削除される可能性があります。final Class<?> getClass()このObjectの実行時クラスを返します。inthashCode()このオブジェクトに対するハッシュ・コード値を返します。final voidnotify()このオブジェクトのモニターで待機中のスレッドを1つ再開します。final voidこのオブジェクトのモニターで待機中のすべてのスレッドを再開します。toString()オブジェクトの文字列表現を返します。final voidwait()現在のスレッドが目覚めるまで待機します。通常、notifiedまたはinterruptedです。final voidwait(long timeoutMillis) 現在のスレッドは、通常、notifiedまたはinterruptedであるか、一定のリアルタイムが経過するまで、目覚めるまで待機します。final voidwait(long timeoutMillis, int nanos) 現在のスレッドは、通常、notifiedまたはinterruptedであるか、一定のリアルタイムが経過するまで、目覚めるまで待機します。
-
フィールド詳細
-
dtd
protected DTD dtddtd。 -
strict
protected boolean strictこのフラグは、ParserがSGMLとの互換性を厳密に調べるかどうかを決定します。 falseの場合、不正なHTML構成要素からなる特定の共通クラスについては寛容な解析を行います。 厳密な場合もそうでない場合も、エラーは記録されます。
-
-
コンストラクタの詳細
-
Parser
-
-
メソッドの詳細
-
getCurrentLine
protected int getCurrentLine()現在解析中の行の行番号を返します。- 戻り値:
- 現在解析中の行の行番号
-
makeTag
protected TagElement makeTag(Element elem, boolean fictional) TagElementを作成します。- パラメータ:
elem- タグ定義を格納する要素fictional- タグに設定されるフラグ"fictional"の値- 戻り値:
- 作成された
TagElement
-
makeTag
protected TagElement makeTag(Element elem) TagElementを作成します。- パラメータ:
elem- タグ定義を格納する要素- 戻り値:
- 作成された
TagElement
-
getAttributes
-
flushAttributes
protected void flushAttributes()現在の属性を削除します。 -
handleText
protected void handleText(char[] text) PCDATAを検出したときに呼び出されます。- パラメータ:
text- セクション・テキスト
-
handleTitle
protected void handleTitle(char[] text) HTMLのtitleタグを検出したときに呼び出されます。- パラメータ:
text- タイトル・テキスト
-
handleComment
protected void handleComment(char[] text) HTMLのコメントを検出したときに呼び出されます。- パラメータ:
text- コメントが処理されている
-
handleEOFInComment
protected void handleEOFInComment()HTMLコメントを閉じずにコンテンツが終了したときにコールされます。 -
handleEmptyTag
protected void handleEmptyTag(TagElement tag) throws ChangedCharSetException 空のタグを検出したときに呼び出されます。- パラメータ:
tag- 処理されるタグ- スロー:
ChangedCharSetException- ドキュメントの文字セットが変更された場合
-
handleStartTag
-
handleEndTag
-
handleError
-
error
-
error
-
error
-
error
protected void error(String err) 1番目、2番目および3番目のエラー・メッセージ引数"?"を使用して、エラー・ハンドラを起動します。- パラメータ:
err- エラーのタイプ
-
startTag
protected void startTag(TagElement tag) throws ChangedCharSetException 開始タグを処理します。 新しいタグが、タグのスタックにプッシュされます。 属性リストを調べて、必要な属性を探します。- パラメータ:
tag- タグ- スロー:
ChangedCharSetException- ドキュメントの文字セットが変更された場合
-
endTag
protected void endTag(boolean omitted) 終了タグを処理します。 終了タグは、タグのスタックからポップされます。- パラメータ:
omitted- タグが実際にドキュメントに存在せず、パーサーによって想定される場合、true
-
markFirstTime
-
parseDTDMarkup
public String parseDTDMarkup() throws IOExceptionドキュメント・タイプ宣言マークアップ宣言を解析します。 現在は、これを無視します。- 戻り値:
- マークアップ宣言の文字列表現
- スロー:
IOException- 入出力エラーが発生した場合
-
parseMarkupDeclarations
protected boolean parseMarkupDeclarations(StringBuffer strBuff) throws IOException マークアップ宣言を解析します。 現在は、文書型定義によるマークアップだけを処理します。 マークアップ宣言の場合はtrueを返し、そうでない場合はfalseを返します。- パラメータ:
strBuff- マークアップ宣言- 戻り値:
trueこれが有効なマークアップ宣言である場合。そうでなければfalse- スロー:
IOException- 入出力エラーが発生した場合
-
parse
public void parse(Reader in) throws IOException DTDが指定されている場合に、HTMLストリームを解析します。- パラメータ:
in- 読者がソースを読む- スロー:
IOException- 入出力エラーが発生した場合
-
getCurrentPos
protected int getCurrentPos()現在の位置を返します。- 戻り値:
- 現在の位置
-