クラス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)や末尾に空白が見つかると、空白以外の文字が見つかるまで、空白はすべて無視されます。 これにより、一般的なブラウザに動作が近くなります。
- 関連項目:
-
フィールドのサマリー
フィールドインタフェースjavax.swing.text.html.parser.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 -
コンストラクタのサマリー
コンストラクタ -
メソッドのサマリー
修飾子と型メソッド説明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) 開始タグを処理します。
-
フィールド詳細
-
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()現在の位置を返します。- 戻り値:
- 現在の位置
-