次のコードがどのように機能するかについて理解に問題があります。
XMLInputFactory xif = XMLInputFactory.newFactory();
XMLOutputFactory xof = XMLOutputFactory.newFactory();
XMLEventReader reader = xif.createXMLEventReader(/* ... */);
XMLEventWriter writer = xof.createXMLEventWriter(/* ... */);
writer.add(reader);
メソッド writer.add([some reader]) は、リーダーからすべてのイベントを読み取り、結果としてそれらを書き込みます。悲しいことに、次のことが起こります。
入力
<root><c/></root>
に変換されます
<root><c><c/></root>
XML の観点からは、これらは等しいツリーですが、人間にとってはそうではありません ;)
同じ出力を得るにはどうすればよいですか?
参考までに: "XML イベント" をフィルタリングするには、後で XMLEvent[Reader|Writer] ペアが必要です。