Module java.xml

Class DocumentBuilder

java.lang.Object
javax.xml.parsers.DocumentBuilder

public abstract class DocumentBuilder extends Object
定义了从XML文档获取DOM文档实例的API。使用这个类,应用程序员可以从XML中获取一个Document

可以通过DocumentBuilderFactory.newDocumentBuilder()方法获取此类的实例。一旦获取了此类的实例,就可以从各种输入源解析XML。这些输入源包括InputStreams、Files、URLs和SAX InputSources。

请注意,此类重用了SAX API中的几个类。这并不要求底层DOM实现的实现者使用SAX解析器将XML文档解析为Document。它只要求实现使用这些现有API与应用程序进行通信。

自版本:
1.4
  • Constructor Details

    • DocumentBuilder

      protected DocumentBuilder()
      受保护的构造函数
  • Method Details

    • reset

      public void reset()

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

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

      重置的DocumentBuilder不能保证具有相同的EntityResolverErrorHandler Object,例如Object.equals(Object obj)。它保证具有功能上相等的EntityResolverErrorHandler

      抛出:
      UnsupportedOperationException - 当实现未覆盖此方法时。
      自版本:
      1.5
    • parse

      public Document parse(InputStream is) throws SAXException, IOException
      将给定InputStream的内容解析为XML文档,并返回一个新的DOM Document对象。如果InputStream为null,则抛出IllegalArgumentException
      参数:
      is - 包含要解析内容的InputStream。
      返回:
      解析InputStreamDocument结果
      抛出:
      IOException - 如果发生任何IO错误。
      SAXException - 如果发生任何解析错误。
      IllegalArgumentException - 当isnull
      参见:
    • 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 - 如果发生任何解析错误。
      IllegalArgumentException - 当isnull
      参见:
    • parse

      public Document parse(String uri) throws SAXException, IOException
      将给定URI的内容解析为XML文档,并返回一个新的DOM Document对象。如果URI为null,则抛出IllegalArgumentException
      参数:
      uri - 要解析内容的位置。
      返回:
      一个新的DOM Document对象。
      抛出:
      IOException - 如果发生任何IO错误。
      SAXException - 如果发生任何解析错误。
      IllegalArgumentException - 当urinull
      参见:
    • parse

      public Document parse(File f) throws SAXException, IOException
      将给定文件的内容解析为XML文档,并返回一个新的DOM Document对象。如果Filenull,则抛出IllegalArgumentException
      参数:
      f - 包含要解析的XML的文件。
      返回:
      一个新的DOM Document对象。
      抛出:
      IOException - 如果发生任何IO错误。
      SAXException - 如果发生任何解析错误。
      IllegalArgumentException - 当fnull
      参见:
    • parse

      public abstract Document parse(InputSource is) throws SAXException, IOException
      将给定输入源的内容解析为XML文档,并返回一个新的DOM Document对象。如果InputSourcenull,则抛出IllegalArgumentException
      参数:
      is - 包含要解析内容的InputSource。
      返回:
      一个新的DOM Document对象。
      抛出:
      IOException - 如果发生任何IO错误。
      SAXException - 如果发生任何解析错误。
      IllegalArgumentException - 当isnull
      参见:
    • isNamespaceAware

      public abstract boolean isNamespaceAware()
      指示此解析器是否配置为理解命名空间。
      返回:
      如果此解析器配置为理解命名空间,则为true;否则为false。
    • isValidating

      public abstract boolean isValidating()
      指示此解析器是否配置为验证XML文档。
      返回:
      如果此解析器配置为验证XML文档,则为true;否则为false。
    • setEntityResolver

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

      public abstract void setErrorHandler(ErrorHandler eh)
      指定要由解析器使用的ErrorHandler。将其设置为null将导致底层实现使用自己的默认实现和行为。
      参数:
      eh - 要由解析器使用的ErrorHandler
    • newDocument

      public abstract Document newDocument()
      获取一个用于构建DOM树的DOM Document对象的新实例。
      返回:
      一个DOM Document对象的新实例。
    • getDOMImplementation

      public abstract DOMImplementation getDOMImplementation()
      获取一个DOMImplementation对象的实例。
      返回:
      一个DOMImplementation的新实例。
    • getSchema

      public Schema getSchema()

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

      如果未使用模式,则返回null

      返回:
      正在使用的Schema或如果未使用则返回null
      抛出:
      UnsupportedOperationException - 当实现未覆盖此方法时
      自:
      1.5
    • isXIncludeAware

      public boolean isXIncludeAware()

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

      返回:
      当此解析器是从工厂创建时,DocumentBuilderFactory.isXIncludeAware()的返回值。
      抛出:
      UnsupportedOperationException - 当实现未覆盖此方法时
      自:
      1.5
      参见: