0

我已经使用 org.w3c.dom.Node.getTextContent() 方法来获取文本值,在 Eclipse 中也可以正常工作。当我们将它作为独立运行时,它正在使用 :class org.apache.xerces.dom.DeferredElementImpl 并失败。请就如何在运行时获取 org.w3c.dom.Node.getTextContent() 提出建议。

4

1 回答 1

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 中运行时不存在的解析器。

于 2012-07-25T12:35:47.870 回答