首先得到:得到 DOM 解析器的工厂实例
然后从 DOM 工厂获得 DOM 解析器
(3 )把要解析的 XML 文档转化为输入流,以便 DOM 解析器解析它
InputStream
( 4 )解析 XML 文档的输入流,得到一个 Document
( 5 )得到 XML 文档的根节点
Element
( 6 )得到节点的子节点
NodeList
newInstance
public static DocumentBuilderFactory newInstance()
-
获取
DocumentBuilderFactory
的新实例。此 static 方法创建一个新的工厂实例。此方法使用以下查找过程顺序来确定要加载的DocumentBuilderFactory
实现类:- 使用
javax.xml.parsers.DocumentBuilderFactory
系统属性。 - 使用 JRE 文件夹中的属性文件 "lib/jaxp.properties"。此配置文件格式为标准的
java.util.Properties
且包含实现类的完全限定名,其中实现类的键是上述定义的系统属性。 JAXP 实现只读取一次 jaxp.properties 文件,然后缓存其值供以后使用。如果首次尝试读取文件时,文件不存在,则不会再次尝试检查该文件是否存在。首次读取 jaxp.properties 后,其中的属性值不能再更改。 - 如果可以,使用 Services API(在 JAR 规范中进行了详细描述)来确定类名称。Services API 将查找在运行时可用的 jar 中
META-INF/services/javax.xml.parsers.DocumentBuilderFactory
文件中的类名。 - 平台默认的
DocumentBuilderFactory
实例。
DocumentBuilderFactory
的引用后,它可以使用工厂来配置和获取解析器实例。疑难解答提示
设置
jaxp.debug
系统属性将导致此方法将许多调试消息打印到System.err
,以说明其执行的操作以及在何处查找。如果加载
DocumentBuilder
有问题,请尝试:java -Djaxp.debug=1 YourProgram ....
- 使用
-
-
返回:
-
新的
DocumentBuilderFactory
实例
抛出:
-
FactoryConfigurationErro
- 如果该实现不可用,或者无法实例化。r
-
新的
newInstance
public static DocumentBuilderFactory newInstance(StringfactoryClassName, ClassLoader classLoader)
-
从类名称中获取新的
DocumentBuilderFactory
实例。此函数在类路径中有多个提供者时很有用。它可以对应用程序提供更多的控制,因为它可以指定应该加载哪个提供者。在应用程序获取对
DocumentBuilderFactory
的引用后,它可以使用工厂来配置和获取解析器实例。疑难解答提示
设置
jaxp.debug
系统属性将导致此方法将许多调试消息打印到System.err
,这些消息说明了正在执行的操作以及何处可以找到它。如有问题,可尝试使用以下代码:
java -Djaxp.debug=1 YourProgram ....
-
-
参数:
-
factoryClassName
- 提供javax.xml.parsers.DocumentBuilderFactory
的实现的完全限定工厂类名称。 -
classLoader
- 用来加载工厂类的ClassLoader
。如果该参数为null
,则使用当前Thread
的上下文类加载器来加载工厂类。
返回:
-
新的
DocumentBuilderFactory
实例
抛出:
-
-