java.applet

java.awt

java.awt.color

java.awt.datatransfer

java.awt.dnd

java.awt.event

java.awt.font

java.awt.geom

java.awt.im

java.awt.im.spi

java.awt.image

java.awt.image.renderable

java.awt.print

java.beans

java.beans.beancontext

java.io

java.lang

java.lang.annotation

java.lang.instrument

java.lang.management

java.lang.ref

java.lang.reflect

java.math

java.net

java.nio

java.nio.channels

java.nio.channels.spi

java.nio.charset

java.nio.charset.spi

java.rmi

java.rmi.activation

java.rmi.dgc

java.rmi.registry

java.rmi.server

java.security

java.security.acl

java.security.cert

java.security.interfaces

java.security.spec

java.sql

java.text

java.util

java.util.concurrent

java.util.concurrent.atomic

java.util.concurrent.locks

java.util.jar

java.util.logging

java.util.prefs

java.util.regex

java.util.zip

javax.accessibility

javax.activity

javax.crypto

javax.crypto.interfaces

javax.crypto.spec

javax.imageio

javax.imageio.event

javax.imageio.metadata

javax.imageio.plugins.bmp

javax.imageio.plugins.jpeg

javax.imageio.spi

javax.imageio.stream

javax.management

javax.management.loading

javax.management.modelmbean

javax.management.monitor

javax.management.openmbean

javax.management.relation

javax.management.remote

javax.management.remote.rmi

javax.management.timer

javax.naming

javax.naming.directory

javax.naming.event

javax.naming.ldap

javax.naming.spi

javax.net

javax.net.ssl

javax.print

javax.print.attribute

javax.print.attribute.standard

javax.print.event

javax.rmi

javax.rmi.CORBA

javax.rmi.ssl

javax.security.auth

javax.security.auth.callback

javax.security.auth.kerberos

javax.security.auth.login

javax.security.auth.spi

javax.security.auth.x500

javax.security.cert

javax.security.sasl

javax.sound.midi

javax.sound.midi.spi

javax.sound.sampled

javax.sound.sampled.spi

javax.sql

javax.sql.rowset

javax.sql.rowset.serial

javax.sql.rowset.spi

javax.swing

javax.swing.border

javax.swing.colorchooser

javax.swing.event

javax.swing.filechooser

javax.swing.plaf

javax.swing.plaf.basic

javax.swing.plaf.metal

javax.swing.plaf.multi

javax.swing.plaf.synth

javax.swing.table

javax.swing.text

javax.swing.text

javax.swing.text.parser

javax.swing.text.rtf

javax.swing.tree

javax.swing.undo

javax.transaction

javax.transaction.xa

javax.xml

javax.xml.datatype

javax.xml.namespace

javax.xml.parsers

javax.xml.transform

javax.xml.transform.dom

javax.xml.transform.sax

javax.xml.transform.stream

javax.xml.validation

javax.xml.xpath

org.ietf.jgss

org.omg.CORBA

org.omg.CORBA_2_3

org.omg.CORBA_2_3.portable

org.omg.CORBA.DynAnyPackage

org.omg.CORBA.ORBPackage

org.omg.CORBA.portable

org.omg.CORBA.TypeCodePackage

org.omg.CosNaming

org.omg.CosNaming.NamingContextExtPackage

org.omg.CosNaming.NamingContextPackage

org.omg.Dynamic

org.omg.DynamicAny

org.omg.DynamicAny.DynAnyFactoryPackage

org.omg.DynamicAny.DynAnyPackage

org.omg.IOP

org.omg.IOP.CodecFactoryPackage

org.omg.IOP.CodecPackage

org.omg.Messaging

org.omg.PortableInterceptor

org.omg.PortableInterceptor.ORBInitInfoPackage

org.omg.PortableServer

org.omg.PortableServer.CurrentPackage

org.omg.PortableServer.POAManagerPackage

org.omg.PortableServer.POAPackage

org.omg.PortableServer.portable

org.omg.PortableServer.ServantLocatorPackage

org.omg.SendingContext

org.omg.stub.java.rmi

org.w3c.dom

org.w3c.dom.bootstrap

org.w3c.dom.events

org.w3c.dom.ls

org.xml.sax

org.xml.sax.ext

org.xml.sax.helpers

allclasses-frame

allclasses-noframe

constant-values

deprecated-list

help-doc

JavaTM 2 Platform
Standard Ed. 5.0

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  DTD dtd
           
protected  boolean strict
          此标记确定 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  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 标题标记时调用。
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()
          解析 Document Type Declaration 标记声明。
protected  boolean parseMarkupDeclarations(StringBuffer strBuff)
          解析标记声明。
protected  void startTag(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 时调用。


handleTitle

protected void handleTitle(char[] text)
在遇到 HTML 标题标记时调用。


handleComment

protected void handleComment(char[] text)
在遇到 HTML 注释时调用。


handleEOFInComment

protected void handleEOFInComment()

handleEmptyTag

protected void handleEmptyTag(TagElement tag)
                       throws ChangedCharSetException
在遇到空标记时调用。

抛出:
ChangedCharSetException

handleStartTag

protected void handleStartTag(TagElement tag)
在遇到开始标记时调用。


handleEndTag

protected void handleEndTag(TagElement tag)
在遇到结束标记时调用。


handleError

protected void handleError(int ln,
                           String msg)
发生了一个错误。


error

protected void error(String err,
                     String arg1,
                     String arg2,
                     String arg3)
调用错误处理程序。


error

protected void error(String err,
                     String arg1,
                     String arg2)

error

protected void error(String err,
                     String arg1)

error

protected void error(String err)

startTag

protected void startTag(TagElement tag)
                 throws ChangedCharSetException
处理开始标记。将新标记推送到标记堆栈。在属性列表中检查所需的属性。

抛出:
ChangedCharSetException

endTag

protected void endTag(boolean omitted)
处理结束标记。结束标记从标记堆栈中弹出。


markFirstTime

protected void markFirstTime(Element elem)
标记在文档中首次看到标记


parseDTDMarkup

public String parseDTDMarkup()
                      throws IOException
解析 Document Type Declaration 标记声明。当前忽略它。

抛出:
IOException

parseMarkupDeclarations

protected boolean parseMarkupDeclarations(StringBuffer strBuff)
                                   throws IOException
解析标记声明。当前仅处理 Document Type Declaration 标记。如果为标记声明,则返回 true,否则返回 false。

抛出:
IOException

parse

public void parse(Reader in)
           throws IOException
在给定 DTD 的情况下,解析 HTML 流。

抛出:
IOException

getCurrentPos

protected int getCurrentPos()

JavaTM 2 Platform
Standard Ed. 5.0

提交错误或意见
有关更多的 API 参考资料和开发人员文档,请参阅 Java 2 SDK SE 开发人员文档。该文档包含更详细的、面向开发人员的描述,以及总体概述、术语定义、使用技巧和工作代码示例。

版权所有 2004 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策