- java.lang.Object
-
- javax.swing.text.html.parser.Parser
-
- javax.swing.text.html.parser.DocumentParser
-
- 实现的所有接口
-
DTDConstants
public class DocumentParser extends Parser
HTML文档的解析器(实际上,你可以指定一个DTD,但实际上你应该只使用这个类与swing中的html dtd)。 读取HTML的InputStream并调用ParserCallback类中的相应方法。 这是HTMLEditorKit用于解析HTML url的默认解析器。这将通知所有有效标记的回调,以及隐含但未明确指定的标记。 例如,html字符串(<p> blah)仅定义了ap标记。 回调将看到以下方法:
- handleStartTag(html,...)
- handleStartTag(head,...)
- handleEndTag(头)
- handleStartTag(body,...)
- handleStartTag(p,...)
- handleText(...)
- handleEndTag(p)的
- handleEndTag(体)
- handleEndTag(HTML)
Boolean.TRUE
为重点HTMLEditorKit.ParserCallback.IMPLIED
。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值为'酒吧'。
position参数将指示标记,注释或文本的开头。 与数组类似,流中的第一个字符的位置为0.对于隐含的标记,该位置将指示下一个遇到的标记的位置。 在第一个示例中,隐含的起始体和html标签将与p标签具有相同的位置,隐含的结束p,html和body标签将具有相同的位置。
当html跳过空格时,文本的位置将是第一个有效字符的位置,例如在字符串'\ n \ n \ nblah'中,文本'blah'将具有3的位置,跳过换行符。
对于没有值的属性,例如在html字符串
<foo blah>
,属性blah
没有值,有两个可能的值将放在AttributeSet的值中:- 如果DTD不包含元素的定义,或者定义没有显式值,则AttributeSet中的值将为
HTML.NULL_ATTRIBUTE_VALUE
。 - 如果DTD包含显式值,如:
<!ATTLIST OPTION selected (selected) #IMPLIED>
将使用来自dtd的这个值(在本例中为选中)。
解析完流后,会通知回调最可能的行结束字符串。 行结束字符串将是\ n,\ r或\ r \ n之一,它在解析流时遇到的最多。
-
-
字段汇总
-
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
-
-
构造方法摘要
构造方法 构造器 描述 DocumentParser(DTD dtd)
使用指定的dtd
创建文档解析器。
-
方法摘要
所有方法 实例方法 具体的方法 变量和类型 方法 描述 protected void
handleEmptyTag(TagElement tag)
处理空标记。protected void
handleEndTag(TagElement tag)
处理结束标记。protected void
handleStartTag(TagElement tag)
处理开始标记。protected void
handleText(char[] data)
处理文字。void
parse(Reader in, HTMLEditorKit.ParserCallback callback, boolean ignoreCharSet)
给定DTD解析HTML流。-
声明方法的类 javax.swing.text.html.parser.Parser
endTag, error, error, error, error, flushAttributes, getAttributes, getCurrentLine, getCurrentPos, handleComment, handleEOFInComment, handleError, handleTitle, makeTag, makeTag, markFirstTime, parse, parseDTDMarkup, parseMarkupDeclarations, startTag
-
-
-
-
构造方法详细信息
-
DocumentParser
public DocumentParser(DTD dtd)
使用指定的dtd
创建文档解析器。- 参数
-
dtd
- dtd。
-
-
方法详细信息
-
parse
public void parse(Reader in, HTMLEditorKit.ParserCallback callback, boolean ignoreCharSet) throws IOException
给定DTD解析HTML流。- 参数
-
in
- 从中读取源代码的读者 -
callback
- 回调 -
ignoreCharSet
- 如果true
字符集被忽略 - 异常
-
IOException
- 如果发生I / O错误
-
handleStartTag
protected void handleStartTag(TagElement tag)
处理开始标记。- 重写:
-
handleStartTag
类Parser
- 参数
-
tag
- 正在处理的标签
-
handleEmptyTag
protected void handleEmptyTag(TagElement tag) throws ChangedCharSetException
处理空标记。- 重写:
-
handleEmptyTag
在类Parser
- 参数
-
tag
- 正在处理的标签 - 异常
-
ChangedCharSetException
- 如果文档字符集已更改
-
handleEndTag
protected void handleEndTag(TagElement tag)
处理结束标记。- 重写:
-
handleEndTag
类Parser
- 参数
-
tag
- 正在处理的标签
-
handleText
protected void handleText(char[] data)
处理文字。- 重写:
-
handleText
在类Parser
- 参数
-
data
- 部分文字
-
-