JavaTM 2 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)
斜體 表示的項是隱含的,也就是說,它們未被明確指定為本來應該提供的正確的 html(儘管頭不是必須的,但仍產生了頭)。對於隱含的標記,AttributeSet 參數中鍵 HTMLEditorKit.ParserCallback.IMPLIED 的值為 Boolean.TRUE

HTML.Attributes 定義 html 屬性的一個型別安全的列舉。如果在 HTML.Attribute 中定義了一個標記的屬性鍵,HTML.Attribute 將作為鍵,否則將使用一個 String 作為鍵。例如,<p foo=bar class=neat> 有兩個屬性,foo 在 HTML.Attribute 中未定義,而 class 在其中定義,因此 AttributeSet 將包含兩個值,HTML.Attribute.CLASS 作為鍵的 String 值 "neat",String "foo" 作為鍵的 String 值 "bar"。

位置參數將指示標記、註釋或文本的開始。與陣列類似,串流中的第一個字元位置為 0。對於被隱含的標記來說,位置參數將指示下一個出現的標記的位置。在第一個範例中,隱含的開始正文和 html 標記將具有與 p 標記相同的位置,隱含的結束 p、html 和正文標記都將具有相同的位置。

由於 html 跳過空白,因此文本的位置將是第一個有效字元的位置,例如,在字元串 "\n\n\nblah" 中,文本 "blah" 位置為 3,換行將被跳過。

對於沒有值的屬性,例如,在 html 字元串 <foo blah> 中,屬性 blah 沒有值,存在兩個可以放入 AttributeSet 值中的可能值:

在解析串流之後,將通知回調最可能的行字元串結束符。行字元串的結束符將是 \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
Standard Ed. 6

提交錯誤或意見

版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only