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
)や末尾に空白が見つかると、空白以外の文字が見つかるまで、空白はすべて無視されます。 これにより、一般的なブラウザに動作が近くなります。
- 関連項目:
DTD
,TagElement
,SimpleAttributeSet
-
フィールドのサマリー
フィールドインタフェース 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 void
endTag(boolean omitted)
終了タグを処理します。protected void
第1、第2、第3のエラー・メッセージ引数"?"を使用してエラー・ハンドラを呼び出します。protected void
第2および第3のエラー・メッセージ引数"?"を使用してエラー・ハンドラを呼び出します。protected void
3番目のエラー・メッセージ引数"?"を使用してエラー・ハンドラを呼び出します。protected void
エラー・ハンドラを呼び出します。protected void
現在の属性を削除します。protected SimpleAttributeSet
現在のタグの属性を返します。protected int
protected int
現在の位置を返します。protected void
handleComment(char[] text)
HTMLのコメントを検出したときに呼び出されます。protected void
handleEmptyTag(TagElement tag)
空のタグを検出したときに呼び出されます。protected void
handleEndTag(TagElement tag)
終了タグを検出したときに呼び出されます。protected void
HTMLコメントを閉じずにコンテンツが終了すると呼び出されます。protected void
handleError(int ln, String msg)
エラーが発生したことを示す。protected void
handleStartTag(TagElement tag)
開始タグを検出したときに呼び出されます。protected void
handleText(char[] text)
PCDATAを検出したときに呼び出されます。protected void
handleTitle(char[] text)
HTMLのtitleタグを検出したときに呼び出されます。protected TagElement
TagElementを作成します。protected TagElement
TagElementを作成します。protected void
markFirstTime(Element elem)
ドキュメント内で最初に見つかったタグにマークを付けます。void
DTDが指定されている場合に、HTMLストリームを解析します。ドキュメント型宣言マークアップ宣言を解析します。protected boolean
parseMarkupDeclarations(StringBuffer strBuff)
マークアップ宣言を解析します。protected void
startTag(TagElement tag)
開始タグを処理します。
-
フィールド詳細
-
dtd
protected DTD dtddtd。 -
strict
protected boolean strictこのフラグは、ParserがSGMLとの互換性を厳密に調べるかどうかを決定します。 falseの場合、不正なHTML構成要素からなる特定の共通クラスについては寛容な解析を行います。 厳密な場合もそうでない場合も、エラーは記録されます。
-
-
コンストラクタの詳細
-
パーサー
public Parser(DTD dtd)指定されたdtd
でパーサーを作成します。- パラメータ:
dtd
- dtd。
-
-
メソッドの詳細
-
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
protected SimpleAttributeSet getAttributes()現在のタグの属性を返します。- 戻り値:
- 属性を含む
SimpleAttributeSet
-
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
protected void handleStartTag(TagElement tag)開始タグを検出したときに呼び出されます。- パラメータ:
tag
- 処理されるタグ
-
handleEndTag
protected void handleEndTag(TagElement tag)終了タグを検出したときに呼び出されます。- パラメータ:
tag
- 処理されるタグ
-
handleError
protected void handleError(int ln, String msg)エラーが発生したことを示す。- パラメータ:
ln
- エラーを含む行の数msg
- エラー・メッセージ
-
error
エラー・ハンドラを呼び出します。- パラメータ:
err
- エラーのタイプarg1
- 最初のエラー・メッセージ引数arg2
- 2番目のエラー・メッセージ引数arg3
- 3番目のエラー・メッセージ引数
-
error
3番目のエラー・メッセージ引数"?"を使用してエラー・ハンドラを呼び出します。- パラメータ:
err
- エラーのタイプarg1
- 最初のエラー・メッセージ引数arg2
- 2番目のエラー・メッセージ引数
-
error
第2および第3のエラー・メッセージ引数"?"を使用してエラー・ハンドラを呼び出します。- パラメータ:
err
- エラーのタイプarg1
- 最初のエラー・メッセージ引数
-
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
protected void markFirstTime(Element elem)ドキュメント内で最初に見つかったタグにマークを付けます。- パラメータ:
elem
- タグによって表される要素
-
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 IOExceptionDTDが指定されている場合に、HTMLストリームを解析します。- パラメータ:
in
- 読者がソースを読む- 例外:
IOException
- 入出力エラーが発生した場合
-
getCurrentPos
protected int getCurrentPos()現在の位置を返します。- 戻り値:
- 現在の位置
-