java.lang.Object javax.xml.parsers.SAXParser
public abstract class SAXParser
定义包装 XMLReader
实现类的 API。在 JAXP 1.0 中,此类包装 Parser
接口,但是此接口由 XMLReader
取代。为了便于过渡,此类继续支持相同的名称和接口,并支持新方法。 此类的实例可以从 SAXParserFactory.newSAXParser()
方法获得。获取此类的实例之后,将可以从各种输入源解析 XML。这些输入源为 InputStream、File、URL 和 SAX InputSource。
此静态方法根据系统属性设置创建新的工厂实例,如果未定义属性,则使用平台默认值。
控制创建哪个工厂实现的系统属性名为 "javax.xml.parsers.SAXParserFactory"
。此属性指定一个类,该类为此抽象类的具体子类。如果未定义属性,将使用默认的平台。
HandlerBase
或
DefaultHandler
的方法。
包装底层实现的此类的实现程序可以考虑使用 ParserAdapter
类,从而使其 SAX1 实现最初在此修订类下工作。
构造方法摘要 | |
---|---|
protected |
SAXParser() 将阻止实例化的受保护构造方法。 |
方法摘要 | |
---|---|
abstract Parser |
getParser() 返回由此类的实现封装的 SAX 解析器。 |
abstract Object |
getProperty(String name) 返回 XMLReader 的底层实现中请求的特定属性。 |
Schema |
getSchema() 获取对 XML 处理器使用的 Schema 的引用。 |
abstract XMLReader |
getXMLReader() 返回由此类的实现封装的 XMLReader 。 |
abstract boolean |
isNamespaceAware() 指示此解析器是否被配置为可识别名称空间。 |
abstract boolean |
isValidating() 指示此解析器是否被配置为验证 XML 文档。 |
boolean |
isXIncludeAware() 获取此解析器的 XInclude 处理模式。 |
void |
parse(File f, DefaultHandler dh) 使用指定的 DefaultHandler 将指定文件的内容解析为 XML。 |
void |
parse(File f, HandlerBase hb) 使用指定的 HandlerBase 将指定文件的内容解析为 XML。 |
void |
parse(InputSource is, DefaultHandler dh) 使用指定的 DefaultHandler 将给定 InputSource 的内容解析为 XML。 |
void |
parse(InputSource is, HandlerBase hb) 使用指定的 HandlerBase 将给定 InputSource 的内容解析为 XML。 |
void |
parse(InputStream is, DefaultHandler dh) 使用指定的 DefaultHandler 将给定的 InputStream 实例的内容解析为 XML。 |
void |
parse(InputStream is, DefaultHandler dh, String systemId) 使用指定的 DefaultHandler 将给定的 InputStream 实例的内容解析为 XML。 |
void |
parse(InputStream is, HandlerBase hb) 使用指定的 HandlerBase 将给定的 InputStream 实例的内容解析为 XML。 |
void |
parse(InputStream is, HandlerBase hb, String systemId) 使用指定的 HandlerBase 将给定的 InputStream 实例的内容解析为 XML。 |
void |
parse(String uri, DefaultHandler dh) 使用指定的 DefaultHandler 将给定统一资源标识符 (URI) 描述的内容解析为 XML。 |
void |
parse(String uri, HandlerBase hb) 使用指定的 HandlerBase 将给定统一资源标识符 (URI) 描述的内容解析为 XML。 |
void |
reset() 将此 SAXParser 重置为其原始配置。 |
abstract void |
setProperty(String name, Object value) 设置 XMLReader 的底层实现中的特定属性。 |
从类 java.lang.Object 继承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
构造方法详细信息 |
---|
protected SAXParser()
将阻止实例化的受保护构造方法。使用 SAXParserFactory.newSAXParser()
。
方法详细信息 |
---|
public void reset()
将此 SAXParser
重置为其原始配置。
SAXParser
被重置为使用 SAXParserFactory.newSAXParser()
创建它时的状态。设计 reset()
旨在允许重用现有的 SAXParser
,从而节省与创建新的 SAXParser
相关的资源。
重置的 SAXParser
不能保证具有相同的 Schema
Object
,如 Object.equals(Object obj)
。可以保证具有功能相等的 Schema
。
UnsupportedOperationException
- 当这些实现没有重写此方法时
public void parse(InputStream is, HandlerBase hb) throws SAXException, IOException
使用指定的 HandlerBase
将给定的 InputStream
实例的内容解析为 XML。建议使用此方法的 DefaultHandler 版本,因为 HandlerBase 类在 SAX 2.0 中已过时。
is
- 包含要解析内容的 InputStream。
hb
- 要使用的 SAX HandlerBase。
IllegalArgumentException
- 如果给定的 InputStream 为 null。
SAXException
- 如果解析产生 SAX 错误。
IOException
- 如果在与
InputStream
的交互过程中发生 IO 错误。
DocumentHandler
public void parse(InputStream is, HandlerBase hb, String systemId) throws SAXException, IOException
使用指定的 HandlerBase
将给定的 InputStream
实例的内容解析为 XML。建议使用此方法的 DefaultHandler 版本,因为 HandlerBase 类在 SAX 2.0 中已过时。
is
- 包含要解析内容的 InputStream。
hb
- 要使用的 SAX HandlerBase。
systemId
- 解析相关 URI 所需的 systemId。
IllegalArgumentException
- 如果给定的
InputStream
为
null
。
IOException
- 如果在与
InputStream
的交互过程中发生任何 IO 错误。
SAXException
- 如果在处理过程中发生任何 SAX 错误。
中的此方法。
public void parse(InputStream is, DefaultHandler dh) throws SAXException, IOException
DefaultHandler
将给定的
InputStream
实例的内容解析为 XML。
is
- 包含要解析内容的 InputStream。
dh
- 要使用的 SAX DefaultHandler。
IllegalArgumentException
- 如果给定的 InputStream 为 null。
IOException
- 如果发生任何 IO 错误。
SAXException
- 如果在处理过程中发生任何 SAX 错误。
DocumentHandler
public void parse(InputStream is, DefaultHandler dh, String systemId) throws SAXException, IOException
DefaultHandler
将给定的
InputStream
实例的内容解析为 XML。
is
- 包含要解析内容的 InputStream。
dh
- 要使用的 SAX DefaultHandler。
systemId
- 解析相关 URL 所需的 systemId。
IllegalArgumentException
- 如果给定的 InputStream 为 null。
IOException
- 如果发生任何 IO 错误。
SAXException
- 如果在处理过程中发生任何 SAX 错误。
org.xml.sax.DocumentHandler 版本。
public void parse(String uri, HandlerBase hb) throws SAXException, IOException
HandlerBase
将给定统一资源标识符 (URI) 描述的内容解析为 XML。
建议使用此方法的 DefaultHandler 版本,因为 HandlerBase
类在 SAX 2.0 中已过时
uri
- 要解析的内容的位置。
hb
- 要使用的 SAX HandlerBase。
IllegalArgumentException
- 如果 uri 为 null。
IOException
- 如果发生任何 IO 错误。
SAXException
- 如果在处理过程中发生任何 SAX 错误。
DocumentHandler
public void parse(String uri, DefaultHandler dh) throws SAXException, IOException
DefaultHandler
将给定统一资源标识符 (URI) 描述的内容解析为 XML。
uri
- 要解析的内容的位置。
dh
- 要使用的 SAX DefaultHandler。
IllegalArgumentException
- 如果 uri 为 null。
IOException
- 如果发生任何 IO 错误。
SAXException
- 如果在处理过程中发生任何 SAX 错误。
DocumentHandler
public void parse(File f, HandlerBase hb) throws SAXException, IOException
HandlerBase
将指定文件的内容解析为 XML。
建议使用此方法的 DefaultHandler 版本,因为 HandlerBase 类在 SAX 2.0 中已过时。
f
- 包含要解析的 XML 的文件
hb
- 要使用的 SAX HandlerBase。
IllegalArgumentException
- 如果 File 对象为 null。
IOException
- 如果发生任何 IO 错误。
SAXException
- 如果在处理过程中发生任何 SAX 错误。
DocumentHandler
public void parse(File f, DefaultHandler dh) throws SAXException, IOException
DefaultHandler
将指定文件的内容解析为 XML。
f
- 包含要解析的 XML 的文件
dh
- 要使用的 SAX DefaultHandler。
IllegalArgumentException
- 如果 File 对象为 null。
IOException
- 如果发生任何 IO 错误。
SAXException
- 如果在处理过程中发生任何 SAX 错误。
DocumentHandler
public void parse(InputSource is, HandlerBase hb) throws SAXException, IOException
HandlerBase
将给定
InputSource
的内容解析为 XML。
建议使用此方法的 DefaultHandler 版本,因为 HandlerBase 类在 SAX 2.0 中已过时。
is
- 包含要解析内容的 InputSource。
hb
- 要使用的 SAX HandlerBase。
IllegalArgumentException
- 如果
InputSource
对象为
null
。
IOException
- 如果发生任何 IO 错误。
SAXException
- 如果在处理过程中发生任何 SAX 错误。
DocumentHandler
public void parse(InputSource is, DefaultHandler dh) throws SAXException, IOException
DefaultHandler
将给定
InputSource
的内容解析为 XML。
is
- 包含要解析内容的 InputSource。
dh
- 要使用的 SAX DefaultHandler。
IllegalArgumentException
- 如果
InputSource
对象为
null
。
IOException
- 如果发生任何 IO 错误。
SAXException
- 如果在处理过程中发生任何 SAX 错误。
DocumentHandler
public abstract Parser getParser() throws SAXException
SAXException
- 如果在处理过程中发生任何 SAX 错误。
public abstract XMLReader getXMLReader() throws SAXException
XMLReader
。
SAXException
- 如果在处理过程中发生任何 SAX 错误。
public abstract boolean isNamespaceAware()
public abstract boolean isValidating()
public abstract void setProperty(String name, Object value) throws SAXNotRecognizedException, SAXNotSupportedException
设置 XMLReader
的底层实现中的特定属性。核心功能和属性列表可以在 http://sax.sourceforge.net/?selected=get-set 中找到。
name
- 要设置的属性的名称。
value
- 要设置的属性的值。
SAXNotRecognizedException
- 当底层 XMLReader 不能识别属性名称时。
SAXNotSupportedException
- 当底层 XMLReader 可以识别属性名称,但不支持该属性时。
XMLReader.setProperty(java.lang.String, java.lang.Object)
public abstract Object getProperty(String name) throws SAXNotRecognizedException, SAXNotSupportedException
返回 XMLReader
的底层实现中请求的特定属性。
name
- 要检索的属性的名称。
SAXNotRecognizedException
- 当底层 XMLReader 不能识别属性名称时。
SAXNotSupportedException
- 当底层 XMLReader 可以识别属性名称,但不支持该属性时。
XMLReader.getProperty(java.lang.String)
public Schema getSchema()
获取对 XML 处理器使用的 Schema
的引用。
如果没有使用 schema,则返回 null
。
Schema
,如果一个也没有使用,则返回
null
UnsupportedOperationException
- 当该实现没有重写此方法时
public boolean isXIncludeAware()
获取此解析器的 XInclude 处理模式。
SAXParserFactory.isXIncludeAware()
的返回值。
UnsupportedOperationException
- 当该实现没有重写此方法时
SAXParserFactory.setXIncludeAware(boolean)