いくつかの xml ファイルをマージしたいと思います。宛先 xml は、ソース ファイルとは少し異なります。宛先ファイルには、追加のルート要素が含まれています。
例えば。
宛先 xml:
<?xml version="1.0" encoding="utf-8"?>
<customer ID="A0001" name="customername">
.....
.....
</customer>
ソース xml:
<?xml version="1.0" encoding="utf-8"?>
<order number="00001">
<.....>
<.....>
<.....>
</order>
<customer ...>
すべてのソース xml ファイルを と の間に挿入する必要があります。</customer>
ソース ファイルは非常に大きくなる場合があります (例: 2 Gb)。
ルート要素を使用して宛先 xml ファイルを記述し、XmlTextReader を使用してソース ファイルを読み取ることができます。
string myOrder = textReader.ReadOuterXml();
writer.WriteRaw(myOrder );
結果 (すべての注文が異なる xml ファイルである場合)
<?xml version="1.0" encoding="utf-8"?>
<customer ID="A0001" name="customername">
<order number="00001">
<.....>
<.....>
<.....>
</order>
<order number="00002">
<.....>
<.....>
<.....>
</order>
<order number="00003">
<.....>
<.....>
<.....>
</order>
</customer>
しかし、ReadOuterXml() を使用した大きなファイルのメモリ不足の例外が心配です。
なにか提案を ?