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 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構成要素からなる特定の共通クラスについては寛容な解析を行います。 厳密な場合もそうでない場合も、エラーは記録されます。
-
-
コンストラクタの詳細
-
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()現在の位置を返します。- 戻り値:
- 現在の位置
-