JavaTM Platform
Standard Ed. 6

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 ドキュメントの 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 Platform
Standard Ed. 6

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

Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。