2009-06-27 3 views
2

したがって、org.w3c.dom互換DOMを返すHTMLCleanerを使用しています。今、私はdomツリーの中に独自のサブクラス化されたElements(domの外に追加の機能を実装する)を挿入したいと思います。これは可能ですか?Javaでは、サードパーティ製のツールで返されたDOMに独自のxmlサブクラス要素を作成する方法

Document.createElement()を使用する場合は、要素の実装を作成するとは言いません。理想的には、私のクラスがElementとNodeを実装するのは、すでに完了しているすべての作業を手動で行う必要がありません。私はElementImplをXercesからサブクラス化し、潜在的にそれを私が持っているDOMに追加できると考えました。しかし、Xercesは、CoreDocumentImplなどを実装するDOMに作成されることを期待しています。

優雅さの観点からは、残念です。私は単純な要素を使用して属性/名前などでそれらを識別しなければならない場合、それぞれがインデックスの特定の位置を指し示す必要があるので。

+0

このHTMLCleanerライブラリによって提供されている既存の実装を拡張することは何ですか?おそらくパッケージの特権? – akarnokd

+1

HTMLCleanerとXerces DOMは同じインターフェイスを使用していますが、どちらもその背後に独自の実装があると思いますので、HTMLCleanerでElementImplを使用するとClassCastExceptionがスローされることがあります。 – akarnokd

+0

@ kd304おそらく、HTMLCleanerライブラリを拡張することを検討することをお勧めします。 )あなたがそれを回答として記入し、コメントではないなら私はそれに投票したでしょう) 上記の問題を実際に解決するために提案された他のどのDOM実装もどのように見えているのかわかりません。このような広範なインターフェイスのセットでは、DOMライブラリは独自の実装を期待しているのは残念です。 –

答えて

0

DOMは、動作するための最も優れたAPIではありません。あなたはシンプルにしたい場合は、使用しDOM4J: - 私はXercesのを捨てるお勧めしたい、既存のドキュメントを構築したり、DOM4J文書

0

可能であれば、それをラップする代わりに、DOMの使用DOM4J - DOM4J文書 にDOMドキュメントをラップJAXBのために。それはずっと友好的なAPIです。