最近質問したところ、あるメンバーが要素を複製する方法と、1 つの要素からのみ要素を削除する方法を教えてくれました。ただし、入力 XML に複数の要素がある場合、同じメソッドを使用することはできません (これは重複した質問ではありません)。この形式で XML を入力した場合の例 (もちろん、要素の数は常に異なります):
<SyncMXAUTHCI>
<MXAUTHCISet>
<CI>
<CINAME>COMPUTER68</CINAME>
</CI>
</MXAUTHCISet>
</SyncMXAUTHCI>
そしてそのクローンを持ちたい
<SyncMXAUTHCI>
<MXAUTHCISet>
<CI>
<CINAME>COMPUTER68</CINAME>
</CI>
<CI>
<CINAME>COMPUTER68</CINAME>
</CI>
</MXAUTHCISet>
</SyncMXAUTHCI>
私はこれを使用しますが、完全に機能します:
Document erJdom = erData.getData();
Element root = erJdom.getRootElement();
Namespace erJdomNamespace = root.getNamespace();
Element incSet = root.getChild("MXAUTHCISet", erJdomNamespace);
incSet.addContent((Element)incSet.getChild("CI", erJdomNamespace).clone());
しかし、入力 XML に 2 つの CI 要素がある場合:
<SyncMXAUTHCI>
<MXAUTHCISet>
<CI>
<CINAME>COMPUTER68</CINAME>
</CI>
<CI>
<CINAME>COMPUTER100</CINAME>
</CI>
</MXAUTHCISet>
</SyncMXAUTHCI>
私はこれを試しましたgetChildren
が、次の理由でコンパイルできません:
incSet.addContent((Element)incSet.getChildren("CI", erJdomNamespace).clone());
次に、メソッド clone() はタイプ List に対して未定義です
複数の要素を複製する方法は? 前もって感謝します!