我使用org.w3c.dom.Node.getTextContent()方法来获取文本值,同样在Eclipse中工作正常。当我们以stanalone的身份运行它时,它会采用:class org.apache.xerces.dom.DeferredElementImpl并失败。请告知如何在运行时获取org.w3c.dom.Node.getTextContent()。
答案 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中运行时不存在的解析器。