java.lang.Object
javax.xml.parsers.DocumentBuilder
定义了从XML文档获取DOM文档实例的API。使用这个类,应用程序员可以从XML中获取一个
Document
。
可以通过DocumentBuilderFactory.newDocumentBuilder()
方法获取此类的实例。一旦获取了此类的实例,就可以从各种输入源解析XML。这些输入源包括InputStreams、Files、URLs和SAX InputSources。
请注意,此类重用了SAX API中的几个类。这并不要求底层DOM实现的实现者使用SAX解析器将XML文档解析为Document
。它只要求实现使用这些现有API与应用程序进行通信。
- 自版本:
- 1.4
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionabstract DOMImplementation
获取一个DOMImplementation
对象的实例。获取XML处理器正在使用的Schema
的引用。abstract boolean
指示此解析器是否配置为理解命名空间。abstract boolean
指示此解析器是否配置为验证XML文档。boolean
获取此解析器的XInclude处理模式。abstract Document
获取一个新的DOMDocument
对象的实例,用于构建DOM树。将给定文件的内容解析为XML文档,并返回一个新的DOMDocument
对象。parse
(InputStream is) 将给定的InputStream
的内容解析为XML文档,并返回一个新的DOMDocument
对象。parse
(InputStream is, String systemId) 将给定的InputStream
的内容解析为XML文档,并返回一个新的DOMDocument
对象。将给定URI的内容解析为XML文档,并返回一个新的DOMDocument
对象。abstract Document
parse
(InputSource is) 将给定输入源的内容解析为XML文档,并返回一个新的DOMDocument
对象。void
reset()
将此DocumentBuilder
重置为其原始配置。abstract void
指定用于解析要解析的XML文档中存在的实体的EntityResolver
。abstract void
指定解析器要使用的ErrorHandler
。
-
Constructor Details
-
DocumentBuilder
protected DocumentBuilder()受保护的构造函数
-
-
Method Details
-
reset
public void reset()将此
DocumentBuilder
重置为其原始配置。DocumentBuilder
被重置为使用DocumentBuilderFactory.newDocumentBuilder()
创建时的相同状态。reset()
旨在允许重用现有的DocumentBuilder
,从而节省与创建新DocumentBuilder
相关的资源。重置的
DocumentBuilder
不能保证具有相同的EntityResolver
或ErrorHandler
Object
,例如Object.equals(Object obj)
。它保证具有功能上相等的EntityResolver
和ErrorHandler
。- 抛出:
-
UnsupportedOperationException
- 当实现未覆盖此方法时。 - 自版本:
- 1.5
-
parse
- 参数:
-
is
- 包含要解析内容的InputStream。 - 返回:
-
解析
InputStream
的Document
结果 - 抛出:
-
IOException
- 如果发生任何IO错误。 -
SAXException
- 如果发生任何解析错误。 -
IllegalArgumentException
- 当is
为null
时 - 参见:
-
parse
- 参数:
-
is
- 包含要解析内容的InputStream。 -
systemId
- 提供用于解析相对URI的基础。 - 返回:
- 一个新的DOM Document对象。
- 抛出:
-
IOException
- 如果发生任何IO错误。 -
SAXException
- 如果发生任何解析错误。 -
IllegalArgumentException
- 当is
为null
时 - 参见:
-
parse
- 参数:
-
uri
- 要解析内容的位置。 - 返回:
- 一个新的DOM Document对象。
- 抛出:
-
IOException
- 如果发生任何IO错误。 -
SAXException
- 如果发生任何解析错误。 -
IllegalArgumentException
- 当uri
为null
时 - 参见:
-
parse
- 参数:
-
f
- 包含要解析的XML的文件。 - 返回:
- 一个新的DOM Document对象。
- 抛出:
-
IOException
- 如果发生任何IO错误。 -
SAXException
- 如果发生任何解析错误。 -
IllegalArgumentException
- 当f
为null
时 - 参见:
-
parse
- 参数:
-
is
- 包含要解析内容的InputSource。 - 返回:
- 一个新的DOM Document对象。
- 抛出:
-
IOException
- 如果发生任何IO错误。 -
SAXException
- 如果发生任何解析错误。 -
IllegalArgumentException
- 当is
为null
时 - 参见:
-
isNamespaceAware
public abstract boolean isNamespaceAware()指示此解析器是否配置为理解命名空间。- 返回:
- 如果此解析器配置为理解命名空间,则为true;否则为false。
-
isValidating
public abstract boolean isValidating()指示此解析器是否配置为验证XML文档。- 返回:
- 如果此解析器配置为验证XML文档,则为true;否则为false。
-
setEntityResolver
指定要用于解析要解析的XML文档中存在的实体的EntityResolver
。将其设置为null
将导致底层实现使用自己的默认实现和行为。- 参数:
-
er
- 要用于解析要解析的XML文档中存在的实体的EntityResolver
。
-
setErrorHandler
指定要由解析器使用的ErrorHandler
。将其设置为null
将导致底层实现使用自己的默认实现和行为。- 参数:
-
eh
- 要由解析器使用的ErrorHandler
。
-
newDocument
获取一个用于构建DOM树的DOMDocument
对象的新实例。- 返回:
- 一个DOM Document对象的新实例。
-
getDOMImplementation
获取一个DOMImplementation
对象的实例。- 返回:
-
一个
DOMImplementation
的新实例。
-
getSchema
获取XML处理器正在使用的
Schema
的引用。如果未使用模式,则返回
null
。- 返回:
-
正在使用的
Schema
或如果未使用则返回null
- 抛出:
-
UnsupportedOperationException
- 当实现未覆盖此方法时 - 自:
- 1.5
-
isXIncludeAware
public boolean isXIncludeAware()获取此解析器的XInclude处理模式。
- 返回:
-
当此解析器是从工厂创建时,
DocumentBuilderFactory.isXIncludeAware()
的返回值。 - 抛出:
-
UnsupportedOperationException
- 当实现未覆盖此方法时 - 自:
- 1.5
- 参见:
-