w3c和apache中的getTextContent()问题

时间:2012-07-25 10:47:36

标签: java xml xpath

我使用org.w3c.dom.Node.getTextContent()方法来获取文本值,同样在Eclipse中工作正常。当我们以stanalone的身份运行它时,它会采用:class org.apache.xerces.dom.DeferredElementImpl并失败。请告知如何在运行时获取org.w3c.dom.Node.getTextContent()。

1 个答案:

答案 0 :(得分:0)

org.w3c.dom.Node是一个界面。 org.apache.xerces.dom.DeferredElementImpl是该接口的实现(实际上是org.w3c.dom.Element的实现,是Node的子接口)。还有其他实现。如果您编写的程序使用Node,那么当您运行它时,您实际上将使用其中一个实现。

似乎DeferredElementImpl未正确实施getTextContent()。虽然很难确定,但鉴于你还没有说出实际问题是什么。

似乎在Eclipse中,您使用的是DeferredElementImpl以外的一些实现,并且该实现正确实现了getTextContent()。在我安装Eclipse时,如果我以正常方式创建元素,我会得到com.sun.org.apache.xerces.internal.dom.ElementImpl

com.sun.org.apache.xerces.internal.dom.ElementImpl是Sun JRE中捆绑的标准实现。如果您获得了不同的实现,那是因为您在类路径上有一个非标准的XML解析器。这很好,但这是你应该注意的事情。如果检查独立应用程序的类路径,则应该找到一个在Eclipse中运行时不存在的解析器。