我已经使用 org.w3c.dom.Node.getTextContent() 方法来获取文本值,在 Eclipse 中也可以正常工作。当我们将它作为独立运行时,它正在使用 :class org.apache.xerces.dom.DeferredElementImpl 并失败。请就如何在运行时获取 org.w3c.dom.Node.getTextContent() 提出建议。
1 回答
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 中运行时不存在的解析器。