次のような dom ノードがあるとします。
org.w3c.dom.Element ノード:
<node id="101">
<node id="102">
<node id="103" />
</node>
<node id="104">
<node id="103" />
</node>
</node>
id 属性を変換するには、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 つのサブレベルがあります。しかし、サブレベルがさらにある場合、すべてのレベルの子ノードをループするのは少し厄介に思えます。このタスクを達成するためのより簡単なアプローチはありますか?
ありがとう、ソニー