を使用して再帰的にDOMノードを変換し、私はそうのようなDOMノードを持って言う:私は私の中で次の操作を行いますid属性を変換するには、Java
<node id="101">
<node id="102">
<node id="103" />
</node>
<node id="104">
<node id="103" />
</node>
</node>
:
のorg.w3c.dom.ElementノードJavaコード:
String nodeId = node.getAttribute("id");
String newNodeId = "prefix/" + nodeId;
node.getAttributeNode("id").setValue(newNodeId);
上記ノードは、次に、その後に変換されるであろう:
<node id="prefix/101">
<node id="102">
<node id="103" />
</node>
<node id="104">
<node id="103" />
</node>
</node>
しかし、すべてのサブノードを再帰的に変更したい。
<node id="prefix/101">
<node id="prefix/102">
<node id="prefix'103" />
</node>
<node id="prefix/104">
<node id="prefix/103" />
</node>
</node>
私は子ノードをループすることができますが、ノードは複数のレベルの子を持つことができます。この場合、ルートには2つのサブレベルがあります。しかし、より多くのサブレベルがある場合、各レベルの子ノードをループするのはちょっと面倒なようです。この作業を達成するためのより直接的なアプローチがありますか?
おかげで、 ソニー
私は、DOMノードに取り組んでいます。以前は明らかにされていないことを申し訳ありません。あなたのappraochもdomノードで使えますか? – sony
この例では、W3C DOMを使用しています。オブジェクトは 'org.w3c.dom'パッケージにあります。私は輸入品を追加しました。 – laz
変換が機能します。ありがとうございました!しかし、私が次のようにしようとすると:public void transform(Element parent、Element child){ Document parent_doc = parent.getOwnerDocument(); child =(要素)parent_doc.importNode(子、真); 0:予期しない例外:org.w3c.dom.DOMException:WRONG_DOCUMENT_ERR:ノードが別のドキュメントで使用されています。それを作成したものよりも。 org.w3c.dom.DOMException:WRONG_DOCUMENT_ERR:ノードが作成されたドキュメントとは別のドキュメントで使用されています。 – sony