JavaTM 2 Platform
Std. Ed. v1.3

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

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

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.3

バグや機能要求の報告
さらに詳しい API リファレンスおよび開発者ドキュメントについては、 Java 2 SDK SE Developer Documentation を参照してください。このドキュメントには、概念、用語の定義、回避策、 実用的なコード例など、開発者を対象にした詳細な解説が掲載されています。

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