为什么我们可以调用接口org.w3c.dom.Document的方法?
我没有看到任何类实现接口org.w3c.dom.Document的方法。那么为什么我们(通常)会调用此接口的getDocumentElement方法来获取根元素?为什么我们可以调用接口org.w3c.dom.Document的方法?
org.w3c.dom.Document
是XML规范的一部分,它可以由许多不同的库实现。如果您想知道使用了哪种确切的实现方式,请尝试使用
org.w3c.dom.Document doc = <your instance>;
System.out.println(doc.getClass().getName());
在您调用方法的相同位置。这会告诉你实现类的名字,这些类将会有这些方法(或者它的超类)。
感谢您的回复。现在我懂了。 – Peter 2011-06-14 04:44:40
org.w3c.dom
包和它的类是Java API for XML Processing(JAXP)的一部分。它提供了为DOM Level 2 Core API提供Java语言绑定。
语言绑定的存在仅仅是为了提供一个可以由各种DOM解析器实现的接口。毕竟,不同的解析器会有不同的技术来维护表示DOM的内部数据结构。符合DOM Core API的多个JAXP解析器可以共存于JVM可用的库中。在运行时,只有其中一个将用于解析XML文档。
一旦实现JAXP的适当DOM解析器读取了XML文档的内容,并且已经填充了它的内部结构以使您可以使用Document类的实例,就可以调用该方法。换句话说,解析XML文档后,DOM解析器负责为您提供Document对象的实例。
谢谢您提供丰富的解释。 – Peter 2011-06-14 04:45:35
@彼得,不客气。 – 2011-06-14 05:09:58
很少有已知的实现是Xerces和JDom
你能发表一个例子吗? – Colin 2011-06-14 04:10:21