Для использования XDocument
я ожидаю, что вы захотите что-то вроде:
var qry = doc.Root.Elements("Cooperation").Skip(part*chunksize).Take(chunksize);
однако, если данные большие , вам, возможно, придется перейти на XmlReader
вместо ... Я попробую сделать пример ... (обновление; 512 КБ, вероятно, стоит ...)
Проблема с вашим кодом в том, что вы используете .Elements()
здесь:
foreach (XElement x in childList.Elements())
{
output_xml.Append(x.ToString());
}
Просто удалите это:
foreach (XElement x in childList)
{
output_xml.Append(x.ToString());
}
Для информации - вы также без необходимости используете синтаксис запроса:
IEnumerable<XElement> childList = from el in xml.Elements("Cooperations")
.Skip(part * chunksize).Take(chunksize) select el;
на 100% идентичен:
IEnumerable<XElement> childList = xml.Elements("Cooperations")
.Skip(part * chunksize).Take(chunksize);
(поскольку компилятор игнорирует очевидное select
, без привязки его к методу Select
LINQ)