public class Parser extends Object implements DTDConstants
残念なことに、正しく実装されていないHTMLパーサーが数多く出回っています。その結果、フォーマットの正しくないHTMLファイルも多数存在します。このパーサーは、ほとんどのHTMLファイルの解析を試みます。すなわち、この実装はHTMLを優先し、SGMLの仕様とは異なっている場合もあります。
このパーサーは、\rおよび\r\nを\nとして扱います。開始タグの後、および終了タグの前の改行は、SGMLやHTMLの仕様に従って無視されます。
HTML仕様では、空白文字がどのように連続するかについて明確に指定されていません。特に、次のようなシナリオについては議論されていません(ここでは空白文字を使用するべきだが、空白文字の表示に を使用している)。
「<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との互換性を厳密に調べるかどうかを決定します。
|
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
修飾子と型 | メソッドと説明 |
---|---|
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)
開始タグを処理します。
|
protected DTD dtd
protected boolean strict
public Parser(DTD dtd)
protected int getCurrentLine()
protected TagElement makeTag(Element elem, boolean fictional)
protected TagElement makeTag(Element elem)
protected SimpleAttributeSet getAttributes()
protected void flushAttributes()
protected void handleText(char[] text)
protected void handleTitle(char[] text)
protected void handleComment(char[] text)
protected void handleEOFInComment()
protected void handleEmptyTag(TagElement tag) throws ChangedCharSetException
protected void handleStartTag(TagElement tag)
protected void handleEndTag(TagElement tag)
protected void handleError(int ln, String msg)
protected void error(String err)
protected void startTag(TagElement tag) throws ChangedCharSetException
protected void endTag(boolean omitted)
protected void markFirstTime(Element elem)
public String parseDTDMarkup() throws IOException
IOException
protected boolean parseMarkupDeclarations(StringBuffer strBuff) throws IOException
IOException
public void parse(Reader in) throws IOException
IOException
protected int getCurrentPos()
バグまたは機能を送信
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright© 1993, 2014, Oracle and/or its affiliates. All rights reserved.