JavaTM Platform
Standard Ed. 6

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

関連項目:
DTD, TagElement, SimpleAttributeSet

フィールドの概要
protected  DTD dtd
           
protected  boolean strict
          このフラグは、Parser が SGML との互換性を厳密に調べるかどうかを決定します。
 
インタフェース 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
 
コンストラクタの概要
Parser(DTD dtd)
           
 
メソッドの概要
protected  void endTag(boolean omitted)
          終了タグを処理します。
protected  void error(String err)
           
protected  void error(String err, String arg1)
           
protected  void error(String err, String arg1, String arg2)
           
protected  void error(String err, String arg1, String arg2, String arg3)
          エラーハンドラを呼び出します。
protected  void flushAttributes()
           
protected  SimpleAttributeSet getAttributes()
           
protected  int getCurrentLine()
           
protected  int getCurrentPos()
           
protected  void handleComment(char[] text)
          HTML のコメントを検出したときに呼び出されます。
protected  void handleEmptyTag(TagElement tag)
          空のタグを検出したときに呼び出されます。
protected  void handleEndTag(TagElement tag)
          終了タグを検出したときに呼び出されます。
protected  void handleEOFInComment()
           
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 makeTag(Element elem)
           
protected  TagElement makeTag(Element elem, boolean fictional)
          TagElement を作成します。
protected  void markFirstTime(Element elem)
          ドキュメント内で最初に見つかったタグにマークを付けます。
 void parse(Reader in)
          DTD が指定されている場合に、HTML ストリームを解析します。
 String parseDTDMarkup()
          文書型定義 (DTD - Document Type Declaration) のマークアップ宣言を解析します。
protected  boolean parseMarkupDeclarations(StringBuffer strBuff)
          マークアップ宣言を解析します。
protected  void startTag(TagElement tag)
          開始タグを処理します。
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

dtd

protected DTD dtd

strict

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

コンストラクタの詳細

Parser

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

getCurrentLine

protected int getCurrentLine()
戻り値:
現在解析中の行の行番号

makeTag

protected TagElement makeTag(Element elem,
                             boolean fictional)
TagElement を作成します。


makeTag

protected TagElement makeTag(Element elem)

getAttributes

protected SimpleAttributeSet getAttributes()

flushAttributes

protected void flushAttributes()

handleText

protected void handleText(char[] text)
PCDATA を検出したときに呼び出されます。


handleTitle

protected void handleTitle(char[] text)
HTML の title タグを検出したときに呼び出されます。


handleComment

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


handleEOFInComment

protected void handleEOFInComment()

handleEmptyTag

protected void handleEmptyTag(TagElement tag)
                       throws ChangedCharSetException
空のタグを検出したときに呼び出されます。

例外:
ChangedCharSetException

handleStartTag

protected void handleStartTag(TagElement tag)
開始タグを検出したときに呼び出されます。


handleEndTag

protected void handleEndTag(TagElement tag)
終了タグを検出したときに呼び出されます。


handleError

protected void handleError(int ln,
                           String msg)
エラーが発生したことを示します。


error

protected void error(String err,
                     String arg1,
                     String arg2,
                     String arg3)
エラーハンドラを呼び出します。


error

protected void error(String err,
                     String arg1,
                     String arg2)

error

protected void error(String err,
                     String arg1)

error

protected void error(String err)

startTag

protected void startTag(TagElement tag)
                 throws ChangedCharSetException
開始タグを処理します。新しいタグが、タグのスタックにプッシュされます。属性リストを調べて、必要な属性を探します。

例外:
ChangedCharSetException

endTag

protected void endTag(boolean omitted)
終了タグを処理します。終了タグは、タグのスタックからポップされます。


markFirstTime

protected void markFirstTime(Element elem)
ドキュメント内で最初に見つかったタグにマークを付けます。


parseDTDMarkup

public String parseDTDMarkup()
                      throws IOException
文書型定義 (DTD - Document Type Declaration) のマークアップ宣言を解析します。現在は、これを無視します。

例外:
IOException

parseMarkupDeclarations

protected boolean parseMarkupDeclarations(StringBuffer strBuff)
                                   throws IOException
マークアップ宣言を解析します。現在は、文書型定義 (DTD - Document Type Declaration) によるマークアップだけを処理します。マークアップ宣言の場合は true を返し、そうでない場合は false を返します。

例外:
IOException

parse

public void parse(Reader in)
           throws IOException
DTD が指定されている場合に、HTML ストリームを解析します。

例外:
IOException

getCurrentPos

protected int getCurrentPos()

JavaTM Platform
Standard Ed. 6

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

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