テキスト値を取得するために org.w3c.dom.Node.getTextContent() メソッドを使用しましたが、Eclipse でも同じように動作しています。これを stanalone として実行すると、: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
、それを実行すると、実際には実装の 1 つを使用することになります。
正しく実装されて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 で実行したときに存在しないパーサーが見つかるはずです。