JavaTM 2
Platform
Std. Ed. v1.4.0

javax.swing.text.html.parser
クラス DocumentParser

java.lang.Object
  |
  +--javax.swing.text.html.parser.Parser
        |
        +--javax.swing.text.html.parser.DocumentParser
すべての実装インタフェース:
DTDConstants

public class DocumentParser
extends Parser

HTML Documents の Parser です。実際には DTD を指定できますが、swing の html dtd にはこのクラスだけを使うようにしてください。HTML の InputStream を読み込み、ParserCallback クラスの適切なメソッドを呼び出します。このクラスは、HTMLEditorKit が HTML url を構文解析するのに使うデフォルトのパーサーです。

有効なすべてのタグ、および暗示されているが明示的には指定されていないタグに対して、コールバックを伝えます。たとえば、HTML 文字列 (<p>blah) で定義されているのは p タグだけです。コールバックは次のメソッドを検出します。

  1. handleStartTag(html, ...)
  2. handleStartTag(head, ...)
  3. handleEndTag(head)
  4. handleStartTag(body, ...)
  5. handleStartTag(p, ...)
  6. handleText(...)
  7. handleEndTag(p)
  8. handleEndTag(body)
  9. handleEndTag(html)
italic の項目は暗示されています。つまり、明示的には指定されていませんが、正しい HTML であるために存在しているということです。ヘッドは必要ありませんが、生成されます。暗示されるタグについては、AttributeSet 引数がキー HTMLEditorKit.ParserCallback.IMPLIEDBoolean.TRUE の値を持ちます。

HTML.Attributes は型保証された HTML 属性の列挙を定義します。タグの属性キーが HTML.Attribute で定義される場合は HTML.Attribute がキーとして使われ、そうでない場合は String が使われます。たとえば <p foo=bar class=neat> には 2 つの属性があります。foo は HTML.Attribute では定義されず、クラスは HTML.Attribute で定義されます。したがって AttributeSet は 2 つの値を持ちます。neat という String 値を持つ HTML.Attribute.CLASS と、bar という String 値を持つ String キー foo です。

位置引数はタグ、コメント、またはテキストの開始を示します。配列と同様に、ストリームの最初の文字は 0 という位置を持っています。暗示されるタグの場合、位置は次に検出されるタグの位置を示します。最初の例では、暗示された本体開始タグおよび HTML タグは p タグと同じ位置を持ち、暗示された最後の p タグ、HTML タグおよび本体タグはすべて同じ位置を持っています。

HTML は空白をスキップするため、テキストの位置は最初の有効な文字の位置になります。たとえば文字列 ¥n¥n¥nblah では、テキスト blah は 3 という位置を持ち、改行はスキップされます。

値を持たない属性、たとえば HTML 文字列 <foo blah> の属性 blah は値を持ちませんが、こうした属性の場合は、AttributeSet の値に配置される値として次の 2 つが考えられます。

ストリームの解析が終了すると、コールバックは行末文字列である可能性が高い文字列の通知を受けます。行末文字列は、ストリームの解析中に最も多く検出される ¥n、¥r または ¥r¥n のどれかです。


フィールドの概要
 
クラス javax.swing.text.html.parser.Parser から継承したフィールド
dtd, strict
 
インタフェース 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
 
コンストラクタの概要
DocumentParser(DTD dtd)
           
 
メソッドの概要
protected  void handleComment(char[] text)
          HTML のコメントを検出したときに呼び出されます。
protected  void handleEmptyTag(TagElement tag)
          空のタグを扱います。
protected  void handleEndTag(TagElement tag)
          終了タグを扱います。
protected  void handleError(int ln, String errorMsg)
          エラーが発生したことを示します。
protected  void handleStartTag(TagElement tag)
          開始タグを扱います。
protected  void handleText(char[] data)
          テキストを扱います。
 void parse(Reader in, HTMLEditorKit.ParserCallback callback, boolean ignoreCharSet)
           
 
クラス javax.swing.text.html.parser.Parser から継承したメソッド
endTag, error, error, error, error, flushAttributes, getAttributes, getCurrentLine, getCurrentPos, handleEOFInComment, handleTitle, makeTag, makeTag, markFirstTime, parse, parseDTDMarkup, parseMarkupDeclarations, startTag
 
クラス java.lang.Object から継承したメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

コンストラクタの詳細

DocumentParser

public DocumentParser(DTD dtd)
メソッドの詳細

parse

public void parse(Reader in,
                  HTMLEditorKit.ParserCallback callback,
                  boolean ignoreCharSet)
           throws IOException
IOException

handleStartTag

protected void handleStartTag(TagElement tag)
開始タグを扱います。

オーバーライド:
クラス Parser 内の handleStartTag

handleComment

protected void handleComment(char[] text)
クラス Parser の記述:
HTML のコメントを検出したときに呼び出されます。

オーバーライド:
クラス Parser 内の handleComment

handleEmptyTag

protected void handleEmptyTag(TagElement tag)
                       throws ChangedCharSetException
空のタグを扱います。

オーバーライド:
クラス Parser 内の handleEmptyTag
ChangedCharSetException

handleEndTag

protected void handleEndTag(TagElement tag)
終了タグを扱います。

オーバーライド:
クラス Parser 内の handleEndTag

handleText

protected void handleText(char[] data)
テキストを扱います。

オーバーライド:
クラス Parser 内の handleText

handleError

protected void handleError(int ln,
                           String errorMsg)
クラス Parser の記述:
エラーが発生したことを示します。

オーバーライド:
クラス Parser 内の handleError

JavaTM 2
Platform
Std. Ed. v1.4.0

バグの報告と機能のリクエスト
これ以外の API リファレンスおよび開発者用ドキュメントについては、 Java 2 SDK SE 開発者用ドキュメントを参照してください。 開発者向けの詳細な解説、概念の概要、用語の定義、バグの回避策、 およびコード実例が含まれています。

Java、Java 2D、および JDBC は米国ならびにその他の国における米国 Sun Microsystems, Inc. の商標もしくは登録商標です。
Copyright 1993-2002 Sun Microsystems, Inc. 901 San Antonio Road
Palo Alto, California, 94303, U.S.A. All Rights Reserved.