Можно ли скопировать весь контент (фрагмент xml) из одного потока (используя xmlReader) во второй (xmlWriter).
У меня есть несколько процедур, которые возвращают фрагменты xml.
<item></item>
<item></item>
<item></item>
<item></item>
<item></item>
using (XmlWriter writer = XmlWriter.Create(stream, _settings))
{
writer.WriteStartElement(typeName);
writer.WriteAttributeString("RowVersion", rowVersion);
for (int i = 1; i <= packagesCount; i++)
{
cmd.Parameters["@packageNumber"].Value = i;
using (var r = cmd.ExecuteXmlReader())
{
//need copy all fragment from reader
}
writer.WriteEndElement();
}
}
Есть такой метод, как write.WriteNode(reader,true), но с его помощью мне нужно перебрать все элементы. Это неэффективно, когда у меня 10000 элементов в одном фрагменте. Мне нужно просто скопировать весь контент. Кроме того, этот фрагмент может быть очень большим, поэтому я предпочитаю использовать поток, а не сохранять его в строке.