*[javax.xml.parsers.DocumentBuilder](https://docs.oracle.com/javase/10/docs/api/javax/xml/parsers/DocumentBuilder.html) :定义 API,以从来自各种输入源的 XML 内容中获取 XML DOM 文档实例。 这些输入源是 InputStreams,Files,URL 和 SAX InputSources。
*[javax.xml.parsers.DocumentBuilderFactory](https://docs.oracle.com/javase/10/docs/api/javax/xml/parsers/DocumentBuilderFactory.html) :定义一种工厂 API,使应用能够获取解析器(`DocumentBuilder`),该解析器从 XML 内容生成 DOM 对象树。
*[org.w3c.dom.Document](https://docs.oracle.com/javase/10/docs/api/org/w3c/dom/Document.html) :它表示整个 XML DOM。 从概念上讲,它是文档树的根,并通过工厂方法提供对文档数据的访问,甚至深入到树中。
*[java.io.StringReader](https://docs.oracle.com/javase/10/docs/api/java/io/StringReader.html) :根据 String 内容创建流。 `DocumentBuilder`使用此流读取 XML 内容进行解析。
*[`javax.xml.parsers.DocumentBuilder`](https://docs.oracle.com/javase/10/docs/api/javax/xml/parsers/DocumentBuilder.html) :定义 API,以从来自各种输入源的 XML 内容中获取 XML DOM 文档实例。 这些输入源是`InputStreams`,文件,URL 和 SAX `InputSources`。
*[`javax.xml.parsers.DocumentBuilderFactory`](https://docs.oracle.com/javase/10/docs/api/javax/xml/parsers/DocumentBuilderFactory.html) :定义一种工厂 API,使应用能够获取解析器(`DocumentBuilder`),该解析器从 XML 内容生成 DOM 对象树。
*[`org.w3c.dom.Document`](https://docs.oracle.com/javase/10/docs/api/org/w3c/dom/Document.html) :它表示整个 XML DOM。 从概念上讲,它是文档树的根,并通过工厂方法提供对文档数据的访问,甚至深入到树中。
*[`java.io.StringReader`](https://docs.oracle.com/javase/10/docs/api/java/io/StringReader.html) :根据字符串内容创建流。 `DocumentBuilder`使用此流读取 XML 内容进行解析。
XPath 将 XML 文档视为节点的[树。 该树与](https://en.wikipedia.org/wiki/Tree_%28data_structure%29"tree")[文档对象模型](https://www.w3.org/DOM/ "DOM")(即 DOM 树)非常相似,因此,如果您熟悉 DOM,则可以轻松了解如何构建基本的 **XPath 表达式**。
XPath 将 XML 文档视为节点的[树](https://en.wikipedia.org/wiki/Tree_%28data_structure%29"tree")。 该树与[文档对象模型](https://www.w3.org/DOM/"DOM")(即 DOM 树)非常相似,因此,如果您熟悉 DOM,则可以轻松了解如何构建基本的 **XPath 表达式**。
1. 创建包含[`StringReader`](https://docs.oracle.com/javase/8/docs/api/java/io/StringReader.html)并引用 XML 字符串的[`org.xml.sax.InputSource`](https://docs.oracle.com/javase/7/docs/api/org/xml/sax/InputSource.html)。