所有类


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 规范不指定如何很好地组合空格。明确地说,不讨论下面的情形(注意,此处应使用空格,但我使用了   来强制显示空格):

'<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  DTDdtd
           
protected  booleanstrict
          此标记确定 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  voidendTag(boolean omitted)
          处理结束标记。
protected  voiderror(String err)
           
protected  voiderror(String err, String arg1)
           
protected  voiderror(String err, String arg1, String arg2)
           
protected  voiderror(String err, String arg1, String arg2, String arg3)
          调用错误处理程序。
protected  voidflushAttributes()
           
protected  SimpleAttributeSetgetAttributes()
           
protected  intgetCurrentLine()
           
protected  intgetCurrentPos()
           
protected  voidhandleComment(char[] text)
          在遇到 HTML 注释时调用。
protected  voidhandleEmptyTag(TagElement tag)
          在遇到空标记时调用。
protected  voidhandleEndTag(TagElement tag)
          在遇到结束标记时调用。
protected  voidhandleEOFInComment()
           
protected  voidhandleError(int ln, String msg)
          发生了一个错误。
protected  voidhandleStartTag(TagElement tag)
          在遇到开始标记时调用。
protected  voidhandleText(char[] text)
          在遇到 PCDATA 时调用。
protected  voidhandleTitle(char[] text)
          在遇到 HTML 标题标记时调用。
protected  TagElementmakeTag(Element elem)
           
protected  TagElementmakeTag(Element elem, boolean fictional)
          制作 TagElement。
protected  voidmarkFirstTime(Element elem)
          标记在文档中首次看到标记
 voidparse(Reader in)
          在给定 DTD 的情况下,解析 HTML 流。
 StringparseDTDMarkup()
          解析 Document Type Declaration 标记声明。
protected  booleanparseMarkupDeclarations(StringBuffer strBuff)
          解析标记声明。
protected  voidstartTag(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,则对某些 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 时调用。