クラス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仕様では、空白文字がどのように連続するかについて明確に指定されていません。 特に、次のようなシナリオについては議論されていません(ここでは空白文字を使用するべきだが、空白文字の表示に&nbspを使用している)。

「<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)や末尾に空白が見つかると、空白以外の文字が見つかるまで、空白はすべて無視されます。 これにより、一般的なブラウザに動作が近くなります。

関連項目:
  • フィールドのサマリー

    フィールド
    修飾子と型
    フィールド
    説明
    protected DTD
    dtd。
    protected boolean
    このフラグは、ParserがSGMLとの互換性を厳密に調べるかどうかを決定します。

    インタフェースで宣言されたフィールド 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 int
    DTD定数はANYに対応
    static final int
    DTD定数はCDATAに対応
    static final int
    DTD定数はCONREFに対応
    static final int
    DTD定数は、CURRENTに対応
    static final int
    DTD定数はDEFAULTに対応
    static final int
    DTD定数はEMPTYに対応
    static final int
    DTD定数はENDTAGに対応
    static final int
    DTD定数はENTITIESに対応
    static final int
    DTD定数はENTITYに対応
    static final int
    DTD定数はFIXEDに対応
    static final int
    DTD定数はGENERALに対応
    static final int
    DTD定数はIDに対応
    static final int
    DTD定数はIDREFに対応
    static final int
    DTD定数はIDREFSに対応
    static final int
    DTD定数はIMPLIEDに対応
    static final int
    DTD定数はMDに対応
    static final int
    DTD定数はMODELに対応
    static final int
    DTD定数はMSに相当
    static final int
    DTD定数はNAMEに対応
    static final int
    DTD定数はNAMESに対応
    static final int
    DTD定数はNMTOKENに対応
    static final int
    DTD定数はNMTOKENSに対応
    static final int
    DTD定数はNOTATIONに対応
    static final int
    DTD定数はNUMBERに対応
    static final int
    DTD定数はNUMBERSに対応
    static final int
    DTD定数はNUTOKENに対応
    static final int
    DTD定数はNUTOKENSに対応
    static final int
    DTD定数はPARAMETERに対応
    static final int
    DTD定数はPIに対応
    static final int
    DTD定数はPUBLICに対応
    static final int
    DTD定数はRCDATAに対応
    static final int
    DTD定数はREQUIREDに対応
    static final int
    DTD定数はSDATAに対応
    static final int
    DTD定数はSTARTTAGに対応
    static final int
    DTD定数はSYSTEMに対応
  • コンストラクタのサマリー

    コンストラクタ
    コンストラクタ
    説明
    Parser(DTD dtd)
    指定されたdtdでパーサーを作成します。
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    protected void
    endTag(boolean omitted)
    終了タグを処理します。
    protected void
    1番目、2番目および3番目のエラー・メッセージ引数"?"を使用して、エラー・ハンドラを起動します。
    protected void
    error(String err, String arg1)
    第2および第3のエラー・メッセージ引数"?"を使用してエラー・ハンドラを呼び出します。
    protected void
    error(String err, String arg1, String arg2)
    3番目のエラー・メッセージ引数"?"を使用してエラー・ハンドラを呼び出します。
    protected void
    error(String err, String arg1, String arg2, String arg3)
    エラー・ハンドラを起動します。
    protected void
    現在の属性を削除します。
    現在のタグの属性を返します。
    protected int
    現在解析中の行の行番号を返します。
    protected int
    現在の位置を返します。
    protected void
    handleComment(char[] text)
    HTMLのコメントを検出したときに呼び出されます。
    protected void
    空のタグを検出したときに呼び出されます。
    protected void
    終了タグを検出したときに呼び出されます。
    protected void
    HTMLコメントを閉じずにコンテンツが終了したときにコールされます。
    protected void
    handleError(int ln, String msg)
    エラーが発生したことを示す。
    protected void
    開始タグを検出したときに呼び出されます。
    protected void
    handleText(char[] text)
    PCDATAを検出したときに呼び出されます。
    protected void
    handleTitle(char[] text)
    HTMLのtitleタグを検出したときに呼び出されます。
    protected TagElement
    TagElementを作成します。
    protected TagElement
    makeTag(Element elem, boolean fictional)
    TagElementを作成します。
    protected void
    ドキュメント内で最初に見つかったタグにマークを付けます。
    void
    DTDが指定されている場合に、HTMLストリームを解析します。
    ドキュメント・タイプ宣言マークアップ宣言を解析します。
    protected boolean
    マークアップ宣言を解析します。
    protected void
    開始タグを処理します。

    クラスオブジェクトで宣言されたメソッド

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    修飾子と型
    メソッド
    説明
    protected Object
    このオブジェクトのコピーを作成して、返します。
    boolean
    このオブジェクトと他のオブジェクトが等しいかどうかを示します。
    protected void
    削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。
    最終決定は非推奨であり、将来のリリースで削除される可能性があります。
    final Class<?>
    このObjectの実行時クラスを返します。
    int
    このオブジェクトに対するハッシュ・コード値を返します。
    final void
    このオブジェクトのモニターで待機中のスレッドを1つ再開します。
    final void
    このオブジェクトのモニターで待機中のすべてのスレッドを再開します。
    オブジェクトの文字列表現を返します。
    final void
    現在のスレッドが目覚めるまで待機します。通常、notifiedまたはinterruptedです。
    final void
    wait(long timeoutMillis)
    現在のスレッドは、通常、notifiedまたはinterruptedであるか、一定のリアルタイムが経過するまで、目覚めるまで待機します。
    final void
    wait(long timeoutMillis, int nanos)
    現在のスレッドは、通常、notifiedまたはinterruptedであるか、一定のリアルタイムが経過するまで、目覚めるまで待機します。
  • フィールド詳細

    • dtd

      protected DTD dtd
      dtd。
    • strict

      protected boolean strict
      このフラグは、ParserがSGMLとの互換性を厳密に調べるかどうかを決定します。 falseの場合、不正なHTML構成要素からなる特定の共通クラスについては寛容な解析を行います。 厳密な場合もそうでない場合も、エラーは記録されます。
  • コンストラクタの詳細

    • Parser

      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

      protected void error(String err, String arg1, String arg2, String arg3)
      エラー・ハンドラを起動します。
      パラメータ:
      err - エラーのタイプ
      arg1 - 最初のエラー・メッセージ引数
      arg2 - 2番目のエラー・メッセージ引数
      arg3 - 3番目のエラー・メッセージ引数
    • error

      protected void error(String err, String arg1, String arg2)
      3番目のエラー・メッセージ引数"?"を使用してエラー・ハンドラを呼び出します。
      パラメータ:
      err - エラーのタイプ
      arg1 - 最初のエラー・メッセージ引数
      arg2 - 2番目のエラー・メッセージ引数
    • error

      protected void error(String err, String arg1)
      第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 IOException
      DTDが指定されている場合に、HTMLストリームを解析します。
      パラメータ:
      in - 読者がソースを読む
      スロー:
      IOException - 入出力エラーが発生した場合
    • getCurrentPos

      protected int getCurrentPos()
      現在の位置を返します。
      戻り値:
      現在の位置