JavaTM 2 Platform
Standard Ed. 5.0

javax.xml.parsers
类 DocumentBuilder

java.lang.Object
  继承者 javax.xml.parsers.DocumentBuilder

public abstract class DocumentBuilder
extends Object

定义 API, 使其从 XML 文档获取 DOM 文档实例。使用此类,应用程序员可以从 XML 获取一个 Document

此类的实例可以从 DocumentBuilderFactory.newDocumentBuilder() 方法获取。获取此类的实例之后,将可以从各种输入源解析 XML。 这些输入源为 InputStreams、Files、URL 和 SAX InputSources。

注意,此类重用了 SAX API 中的一些类。这并不要求底层 DOM 实现的实现者使用 SAX 解析器将 XML 文档解析为 Document。它仅要求该实现使用这些现有的 API 与应用程序交流。


构造方法摘要
protected DocumentBuilder()
          受保护的构造方法
 
方法摘要
abstract  DOMImplementation getDOMImplementation()
          获取 DOMImplementation 对象的一个实例。
 Schema getSchema()
          获取由 XML 处理器使用的 Schema 的引用。
abstract  boolean isNamespaceAware()
          指示此解析器是否被配置为可识别名称空间。
abstract  boolean isValidating()
          指示此解析器是否被配置为验证 XML 文档。
 boolean isXIncludeAware()
          获取此解析器的 XInclude 处理模式。
abstract  Document newDocument()
          获取 DOM Document 对象的一个新实例来生成一个 DOM 树。
 Document parse(File f)
          将给定文件的内容解析为一个 XML 文档,并且返回一个新的 DOM Document 对象。
abstract  Document parse(InputSource is)
          将给定输入源的内容解析为一个 XML 文档,并且返回一个新的 DOM Document 对象。
 Document parse(InputStream is)
          将给定 InputStream 的内容解析为一个 XML 文档,并且返回一个新的 DOM Document 对象。
 Document parse(InputStream is, String systemId)
          将给定 InputStream 的内容解析为一个 XML 文档,并且返回一个新的 DOM Document 对象。
 Document parse(String uri)
          将给定 URI 的内容解析为一个 XML 文档,并且返回一个新的 DOM Document 对象。
 void reset()
          将此 DocumentBuilder 重置为其原始配置。
abstract  void setEntityResolver(EntityResolver er)
          指定使用 EntityResolver 解析要解析的 XML 文档中存在的实体。
abstract  void setErrorHandler(ErrorHandler eh)
          指定解析器要使用的 ErrorHandler
 
从类 java.lang.Object 继承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

构造方法详细信息

DocumentBuilder

protected DocumentBuilder()
受保护的构造方法

方法详细信息

reset

public void reset()

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

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

重置的 DocumentBuilder 不能保证具有相同的 EntityResolverErrorHandler Object,即 Object.equals(Object obj)。可以保证具有功能相等的 EntityResolverErrorHandler

从以下版本开始:
1.5

parse

public Document parse(InputStream is)
               throws SAXException,
                      IOException
将给定 InputStream 的内容解析为一个 XML 文档,并且返回一个新的 DOM Document 对象。如果 InputStream 为 null,则抛出一个 IllegalArgumentException

参数:
is - 包含要解析内容的 InputStream。
返回:
解析 InputStreamDocument 结果。
抛出:
IOException - 如果发生任何 IO 错误。
SAXException - 如果发生任何解析错误。
另请参见:
DocumentHandler

parse

public Document parse(InputStream is,
                      String systemId)
               throws SAXException,
                      IOException
将给定 InputStream 的内容解析为一个 XML 文档,并且返回一个新的 DOM Document 对象。如果 InputStream 为 null,则抛出一个 IllegalArgumentException

参数:
is - 包含要解析内容的 InputStream。
systemId - 提供一个与解析相关的 URI 的基础。
返回:
一个新的 DOM Document 对象。
抛出:
IOException - 如果发生任何 IO 错误。
SAXException - 如果发生任何解析错误。
另请参见:
DocumentHandler

parse

public Document parse(String uri)
               throws SAXException,
                      IOException
将给定 URI 的内容解析为一个 XML 文档,并且返回一个新的 DOM Document 对象。如果 URI 为 null,则抛出一个 IllegalArgumentException

参数:
uri - 要解析的内容的位置。
返回:
一个新的 DOM Document 对象。
抛出:
IOException - 如果发生任何 IO 错误。
SAXException - 如果发生任何解析错误。
另请参见:
DocumentHandler

parse

public Document parse(File f)
               throws SAXException,
                      IOException
将给定文件的内容解析为一个 XML 文档,并且返回一个新的 DOM Document 对象。如果 Filenull,则抛出一个 IllegalArgumentException

参数:
f - 包含要解析的 XML 的文件。
返回:
一个新的 DOM Document 对象。
抛出:
IOException - 如果发生任何 IO 错误。
SAXException - 如果发生任何解析错误。
另请参见:
DocumentHandler

parse

public abstract Document parse(InputSource is)
                        throws SAXException,
                               IOException
将给定输入源的内容解析为一个 XML 文档,并且返回一个新的 DOM Document 对象。如果 InputSourcenull,则抛出一个 IllegalArgumentException

参数:
is - 包含要解析内容的 InputSource。
返回:
一个新的 DOM Document 对象。
抛出:
IOException - 如果发生任何 IO 错误。
SAXException - 如果发生任何解析错误。
另请参见:
DocumentHandler

isNamespaceAware

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

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

isValidating

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

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

setEntityResolver

public abstract void setEntityResolver(EntityResolver er)
指定使用 EntityResolver 解析要解析的 XML 文档中存在的实体。将其设置为 null 将会导致底层实现使用其自身的默认实现和行为。

参数:
er - EntityResolver,用于解析要解析的 XML 文档中存在的实体。

setErrorHandler

public abstract void setErrorHandler(ErrorHandler eh)
指定解析器要使用的 ErrorHandler。将其设置为 null 将会导致底层实现使用其自身的默认实现和行为。

参数:
eh - 解析器将要使用的 ErrorHandler

newDocument

public abstract Document newDocument()
获取 DOM Document 对象的一个新实例来生成一个 DOM 树。

返回:
DOM Document 对象的一个新实例。

getDOMImplementation

public abstract DOMImplementation getDOMImplementation()
获取 DOMImplementation 对象的一个实例。

返回:
新的 DOMImplementation 实例。

getSchema

public Schema getSchema()

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

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

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

isXIncludeAware

public boolean isXIncludeAware()

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

返回:
当从工厂创建此解析器时,返回 DocumentBuilderFactory.isXIncludeAware() 的返回值。
抛出:
UnsupportedOperationException - 为了向后兼容,当使用 JAXP 较早版本的实现时,将抛出此异常。
从以下版本开始:
1.5
另请参见:
DocumentBuilderFactory.setXIncludeAware(boolean)

JavaTM 2 Platform
Standard Ed. 5.0

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

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