public interface Parser
org.xml.sax.Parser |
Known Indirect Subclasses |
该接口在API级别1中已被弃用。
该接口已被SAX2 XMLReader
接口取代,该接口包含命名空间支持。
SAX(Simple API for XML)分析器的基本接口。
This module, both source code and documentation, is in the Public Domain, and comes with NO WARRANTY. See http://www.saxproject.org for further information.
这是SAX1的主要事件供应商界面; 它在SAX2中已被XMLReader
所取代,其中包括命名空间支持和复杂的可配置性和可扩展性。
所有SAX1解析器都必须实现这个基本接口:它允许应用程序为不同类型的事件注册处理程序,并从URI或字符流开始解析。
所有SAX1解析器都必须实现一个零参数构造函数(尽管其他构造函数也是允许的)。
SAX1解析器可重复使用但不可重入:一旦第一次解析成功完成,应用程序可重用解析器对象(可能具有不同的输入源),但它可能不会在解析中递归调用parse()方法。
Public methods |
|
---|---|
abstract void |
parse(InputSource source) 解析一个XML文档。 |
abstract void |
parse(String systemId) 从系统标识符(URI)解析XML文档。 |
abstract void |
setDTDHandler(DTDHandler handler) 允许应用程序注册DTD事件处理程序。 |
abstract void |
setDocumentHandler(DocumentHandler handler) 允许应用程序注册文档事件处理程序。 |
abstract void |
setEntityResolver(EntityResolver resolver) 允许应用程序注册自定义实体解析器。 |
abstract void |
setErrorHandler(ErrorHandler handler) 允许应用程序注册错误事件处理程序。 |
abstract void |
setLocale(Locale locale) 允许应用程序请求区域设置以查看错误和警告。 |
void parse (InputSource source)
解析一个XML文档。
应用程序可以使用此方法来指示SAX解析器开始解析来自任何有效输入源(字符流,字节流或URI)的XML文档。
当解析正在进行时,应用程序可能不会调用此方法(它们应为每个其他XML文档创建一个新的Parser)。 解析完成后,应用程序可能会重用相同的Parser对象,可能会使用不同的输入源。
Parameters | |
---|---|
source |
InputSource : The input source for the top-level of the XML document. |
Throws | |
---|---|
SAXException |
Any SAX exception, possibly wrapping another exception. |
IOException |
An IO exception from the parser, possibly from a byte stream or character stream supplied by the application. |
void parse (String systemId)
从系统标识符(URI)解析XML文档。
此方法是从系统标识符中读取文档的常见情况的快捷方式。 这与以下内容完全相同:
parse(new InputSource(systemId));
如果系统标识符是一个URL,那么它在传递给解析器之前必须由应用程序完全解析。
Parameters | |
---|---|
systemId |
String : The system identifier (URI). |
Throws | |
---|---|
SAXException |
Any SAX exception, possibly wrapping another exception. |
IOException |
An IO exception from the parser, possibly from a byte stream or character stream supplied by the application. |
void setDTDHandler (DTDHandler handler)
允许应用程序注册DTD事件处理程序。
如果应用程序没有注册DTD处理程序,则SAX解析器报告的所有DTD事件将被静默忽略(这是HandlerBase实现的默认行为)。
Applications may register a new or different handler in the middle of a parse, and the SAX parser must begin using the new handler immediately.
Parameters | |
---|---|
handler |
DTDHandler : The DTD handler. |
也可以看看:
void setDocumentHandler (DocumentHandler handler)
允许应用程序注册文档事件处理程序。
如果应用程序没有注册文档处理程序,那么SAX解析器报告的所有文档事件将被默默忽略(这是HandlerBase实现的默认行为)。
应用程序可以在解析中注册新的或不同的处理程序,并且SAX解析器必须立即开始使用新的处理程序。
Parameters | |
---|---|
handler |
DocumentHandler : The document handler. |
也可以看看:
void setEntityResolver (EntityResolver resolver)
允许应用程序注册自定义实体解析器。
如果应用程序没有注册实体解析器,则SAX解析器将解析系统标识符并打开与实体本身的连接(这是在HandlerBase中实现的默认行为)。
应用程序可以在解析过程中注册新的或不同的实体解析器,SAX解析器必须立即开始使用新的解析器。
Parameters | |
---|---|
resolver |
EntityResolver : The object for resolving entities. |
也可以看看:
void setErrorHandler (ErrorHandler handler)
允许应用程序注册错误事件处理程序。
如果应用程序没有注册错误事件处理程序,则SAX解析器报告的所有错误事件将被默默忽略,fatalError除外,这会引发SAXException(这是HandlerBase实现的默认行为)。
应用程序可以在解析中注册新的或不同的处理程序,并且SAX解析器必须立即开始使用新的处理程序。
Parameters | |
---|---|
handler |
ErrorHandler : The error handler. |
也可以看看:
void setLocale (Locale locale)
允许应用程序请求区域设置以查看错误和警告。
SAX解析器不需要为错误和警告提供本地化; 如果它们不能支持请求的区域设置,那么它们必须抛出一个SAX异常。 应用程序可能不会在解析过程中请求区域设置更改。
Parameters | |
---|---|
locale |
Locale : A Java Locale object. |
Throws | |
---|---|
SAXException |
Throws an exception (using the previous or default locale) if the requested locale is not supported. |
也可以看看: