- 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文件。 这意味着实现有时会偏离SGML规范而不支持HTML。
解析器将\ r和\ r \ n视为\ n。 正如SGML / HTML规范中所指定的那样,将忽略starttags之后和结束标记之前的换行符。
html规范没有指定空间如何很好地合并。 具体来说,未讨论以下场景(请注意,此处应使用空格,但我正在使用强制显示空间):
'<b> blah <i> <strike> foo'可被视为:'<b> blah <i> <strike> foo'
以及:'<p> <a href="xx"> <em>使用</ em> </a> </ p>'似乎被视为:'<p> <a href =“xx “> <EM>使用</ EM> </A> </ p>”
如果
strict
为false,则遇到中断流(TagElement.breaksFlows
)或尾随空格的标记时,将忽略所有空格,直到遇到非空白字符。 这似乎使行为更接近流行的浏览器。- 另请参见:
-
DTD
,TagElement
,SimpleAttributeSet
-
-
字段汇总
字段 变量和类型 字段 描述 protected DTD
dtd
dtd。protected boolean
strict
此标志确定Parser是否严格执行SGML兼容性。-
Fields declared in interface 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
-
-
方法摘要
所有方法 实例方法 具体的方法 变量和类型 方法 描述 protected void
endTag(boolean omitted)
处理结束标记。protected void
error(String err)
使用第1,第2和第3个错误消息参数“?”调用错误处理程序。protected void
error(String err, String arg1)
使用第二个和第三个错误消息参数“?”调用错误处理程序。protected void
error(String err, String arg1, String arg2)
使用第3个错误消息参数“?”调用错误处理程序。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()
在内容终止时调用而不关闭HTML注释。protected void
handleError(int ln, String msg)
发生了错误。protected void
handleStartTag(TagElement tag)
遇到开始标记时调用。protected void
handleText(char[] text)
遇到PCDATA时调用。protected void
handleTitle(char[] text)
遇到HTML标题标记时调用。protected TagElement
makeTag(Element elem)
制作TagElement。protected TagElement
makeTag(Element elem, boolean fictional)
制作TagElement。protected void
markFirstTime(Element elem)
标记第一次在文档中看到标记void
parse(Reader in)
给定DTD解析HTML流。String
parseDTDMarkup()
解析文档类型声明标记声明。protected boolean
parseMarkupDeclarations(StringBuffer strBuff)
解析标记声明。protected void
startTag(TagElement tag)
处理开始标记。
-
-
-
字段详细信息
-
dtd
protected DTD dtd
dtd。
-
strict
protected boolean strict
此标志确定Parser是否严格执行SGML兼容性。 如果为false,则对于错误的HTML构造的某些常见类将是宽松的。 严格与否,在任何一种情况下都会记录错误。
-
-
构造方法详细信息
-
Parser
public Parser(DTD dtd)
使用指定的dtd
创建解析器。- 参数
-
dtd
- dtd。
-
-
方法详细信息
-
getCurrentLine
protected int getCurrentLine()
- 结果
- 当前正在解析的行的行号
-
makeTag
protected TagElement makeTag(Element elem, boolean fictional)
制作TagElement。- 参数
-
elem
- 存储标记定义的元素 -
fictional
- 要为标记设置的标志“fictional
”的值 - 结果
-
创建
TagElement
-
makeTag
protected TagElement makeTag(Element elem)
制作TagElement。- 参数
-
elem
- 存储标记定义的元素 - 结果
-
创建
TagElement
-
getAttributes
protected SimpleAttributeSet getAttributes()
返回当前标记的属性。- 结果
-
SimpleAttributeSet
包含属性
-
flushAttributes
protected void flushAttributes()
删除当前属性。
-
handleText
protected void handleText(char[] text)
遇到PCDATA时调用。- 参数
-
text
- 部分文字
-
handleTitle
protected void handleTitle(char[] text)
遇到HTML标题标记时调用。- 参数
-
text
- 标题文本
-
handleComment
protected void handleComment(char[] text)
遇到HTML注释时调用。- 参数
-
text
- 正在处理的评论
-
handleEOFInComment
protected void handleEOFInComment()
在内容终止时调用而不关闭HTML注释。
-
handleEmptyTag
protected void handleEmptyTag(TagElement tag) throws ChangedCharSetException
遇到空标记时调用。- 参数
-
tag
- 正在处理的标签 - 异常
-
ChangedCharSetException
- 如果文档字符集已更改
-
handleStartTag
protected void handleStartTag(TagElement tag)
遇到开始标记时调用。- 参数
-
tag
- 正在处理的标签
-
handleEndTag
protected void handleEndTag(TagElement tag)
遇到结束标记时调用。- 参数
-
tag
- 正在处理的标签
-
handleError
protected void handleError(int ln, String msg)
发生了错误。- 参数
-
ln
- 包含错误的行数 -
msg
- 错误消息
-
error
protected void error(String err, String arg1, String arg2, String arg3)
调用错误处理程序。- 参数
-
err
- 错误类型 -
arg1
- 第一个错误消息参数 -
arg2
- 第二个错误消息参数 -
arg3
- 第三个错误消息参数
-
error
protected void error(String err, String arg1, String arg2)
使用第3个错误消息参数“?”调用错误处理程序。- 参数
-
err
- 错误类型 -
arg1
- 第一个错误消息参数 -
arg2
- 第二个错误消息参数
-
error
protected void error(String err, String arg1)
使用第二个和第三个错误消息参数“?”调用错误处理程序。- 参数
-
err
- 错误类型 -
arg1
- 第一个错误消息参数
-
error
protected void error(String err)
使用第1,第2和第3个错误消息参数“?”调用错误处理程序。- 参数
-
err
- 错误类型
-
startTag
protected void startTag(TagElement tag) throws ChangedCharSetException
处理开始标记。 新标签被推送到标签堆栈。 检查属性列表的必需属性。- 参数
-
tag
- 标签 - 异常
-
ChangedCharSetException
- 如果文档字符集已更改
-
endTag
protected void endTag(boolean omitted)
处理结束标记。 结束标记从标记堆栈中弹出。- 参数
-
omitted
-true
如果标签实际上不存在于文档中,但是解析器应该
-
markFirstTime
protected void markFirstTime(Element elem)
标记第一次在文档中看到标记- 参数
-
elem
- 标记表示的元素
-
parseDTDMarkup
public String parseDTDMarkup() throws IOException
解析文档类型声明标记声明。 目前忽略它。- 结果
- 标记声明的字符串表示形式
- 异常
-
IOException
- 如果发生I / O错误
-
parseMarkupDeclarations
protected boolean parseMarkupDeclarations(StringBuffer strBuff) throws IOException
解析标记声明。 目前只处理文档类型声明标记。 如果它是标记声明,则返回true,否则返回false。- 参数
-
strBuff
- 标记声明 - 结果
-
true
如果这是有效的标记声明; 否则false
- 异常
-
IOException
- 如果发生I / O错误
-
parse
public void parse(Reader in) throws IOException
给定DTD解析HTML流。- 参数
-
in
- 阅读源代码的读者 - 异常
-
IOException
- 如果发生I / O错误
-
getCurrentPos
protected int getCurrentPos()
返回当前位置。- 结果
- 目前的立场
-
-