JAVA笔记之SAX-XML

ublic abstract class SAXParser
 
 
  
  extends 
  
  Object
 
 

定义包装 XMLReader 实现类的 API。在 JAXP 1.0 中,此类包装 Parser 接口,但是此接口由 XMLReader 取代。为了便于过渡,此类继续支持相同的名称和接口,并支持新方法。 此类的实例可以从 SAXParserFactory.newSAXParser() 方法获得。获取此类的实例之后,将可以从各种输入源解析 XML。这些输入源为 InputStream、File、URL 和 SAX InputSource。

此静态方法根据系统属性设置创建新的工厂实例,如果未定义属性,则使用平台默认值。

控制创建哪个工厂实现的系统属性命名为 "javax.xml.parsers.SAXParserFactory"。此属性命名一个类,该类为此抽象类的具体子类。如果未定义属性,将使用默认的平台。

由于内容由基础解析器解析,因此将调用给定 HandlerBaseDefaultHandler 的方法。

包装基础实现的此类的实现程序可以考虑使用 ParserAdapter 类,从而使其 SAX1 实现最初在此修订类下工作。

 

 


构造方法摘要
protected SAXParser()
          将阻止实例化的受保护的构造方法。
 
方法摘要
abstract  ParsergetParser()
          返回由此类的实现封装的 SAX 解析器。
abstract  ObjectgetProperty(String name)
          返回 XMLReader 的基础实现中请求的特定属性。
 SchemagetSchema()
          获取对 XML 处理器使用的 Schema 的引用。
abstract  XMLReadergetXMLReader()
          返回由此类的实现封装的 XMLReader
abstract  booleanisNamespaceAware()
          指示此解析器是否被配置为可识别名称空间。
abstract  booleanisValidating()
          指示此解析器是否被配置为验证 XML 文档。
 booleanisXIncludeAware()
          获取此解析器的 XInclude 处理模式。
 voidparse(File f, DefaultHandler dh)
          使用指定的 DefaultHandler 将指定文件的内容解析为 XML。
 voidparse(File f, HandlerBase hb)
          使用指定的 HandlerBase 将指定文件的内容解析为 XML。
 voidparse(InputSource is, DefaultHandler dh)
          使用指定的 DefaultHandler 将给定 InputSource 的内容解析为 XML。
 voidparse(InputSource is, HandlerBase hb)
          使用指定的 HandlerBase 将给定 InputSource 的内容解析为 XML。
 voidparse(InputStream is, DefaultHandler dh)
          使用指定的 DefaultHandler 将给定的 InputStream 实例的内容解析为 XML。
 voidparse(InputStream is, DefaultHandler dh, String systemId)
          使用指定的 DefaultHandler 将给定的 InputStream 实例的内容解析为 XML。
 voidparse(InputStream is, HandlerBase hb)
          使用指定的 HandlerBase 将给定的 InputStream 实例的内容解析为 XML。
 voidparse(InputStream is, HandlerBase hb, String systemId)
          使用指定的 HandlerBase 将给定的 InputStream 实例的内容解析为 XML。
 voidparse(String uri, DefaultHandler dh)
          使用指定的 DefaultHandler 将给定统一资源标识符 (URI) 描述的内容解析为 XML。
 voidparse(String uri, HandlerBase hb)
          使用指定的 HandlerBase 将给定统一资源标识符 (URI) 描述的内容解析为 XML。
 voidreset()
          将此 SAXParser 重置为其原始配置。
abstract  voidsetProperty(String name, Object value)
          设置 XMLReader 的基础实现中的特定属性。
 
从类 java.lang.Object 继承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

构造方法详细信息

SAXParser

protected SAXParser()

将阻止实例化的受保护的构造方法。使用 SAXParserFactory.newSAXParser()

 

方法详细信息

reset

public void reset()

将此 SAXParser 重置为其原始配置。

SAXParser 被重置为使用 SAXParserFactory.newSAXParser() 创建它时的状态。reset() 在设计上旨在允许重用现有的 SAXParser,从而节省与创建新的 SAXParser 相关的资源。

重置的 SAXParser 不能保证具有相同的 Schema Object,如 Object.equals(Object obj)。可以保证具有功能相等的 Schema

 

从以下版本开始:
1.5

parse

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

parse

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 - 如果给定的 InputStreamnull
IOException - 如果在与 InputStream 的交互过程中发生任何 IO 错误。
SAXException - 如果在处理过程中发生任何 SAX 错误。
另请参见:
中的此方法。

parse

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

parse

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 版本。

parse

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

parse

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

parse

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

parse

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

parse

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

parse

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

getParser

public abstract Parser getParser()
throws SAXException
返回由此类的实现封装的 SAX 解析器。

 

返回:
由此类的实现封装的 SAX 解析器。
抛出:
SAXException - 如果在处理过程中发生任何 SAX 错误。

getXMLReader

public abstract XMLReader getXMLReader()
throws SAXException
返回由此类的实现封装的 XMLReader

 

返回:
由此类的实现封装的 XMLReader。
抛出:
SAXException - 如果在处理过程中发生任何 SAX 错误。

isNamespaceAware

public abstract boolean isNamespaceAware()
指示此解析器是否被配置为可识别名称空间。

 

返回:
如果此解析器被配置为可识别名称空间,则返回 true;否则返回 false。

isValidating

public abstract boolean isValidating()
指示此解析器是否被配置为验证 XML 文档。

 

返回:
此解析器被配置为验证 XML 文档,则返回 true;否则返回 false。

setProperty

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)

getProperty

public abstract Object getProperty(String name)
throws SAXNotRecognizedException,
SAXNotSupportedException

返回 XMLReader 的基础实现中请求的特定属性。

 

参数:
name - 要检索的属性的名称。
返回:
所请求属性的值。
抛出:
SAXNotRecognizedException - 当基础 XMLReader 不能识别属性名称时。
SAXNotSupportedException - 当基础 XMLReader 可以识别属性名称,但不支持该属性时。
另请参见:
XMLReader.getProperty(java.lang.String)

getSchema

public Schema getSchema()

获取对 XML 处理器使用的 Schema 的引用。

如果没有使用 schema,则返回 null

 

返回:
返回正在使用的 Schema,如果一个也没有使用,则返回 null
抛出:
UnsupportedOperationException - 为了向后兼容,当使用 JAXP 较早版本的实现时,将抛出此异常。
从以下版本开始:
1.5

isXIncludeAware

public boolean isXIncludeAware()

获取此解析器的 XInclude 处理模式。

 

返回:
当从工厂创建此解析器时,返回 SAXParserFactory.isXIncludeAware() 的返回值。
抛出:
UnsupportedOperationException - 为了向后兼容,当使用 JAXP 较早版本的实现时,将抛出此异常。
  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值