Чтение нескольких последовательных XML-файлов в C# XmlReader

Возможный дубликат:
Есть ли встроенный способ обработки нескольких файлов как одного потока?

У меня очень большой объем последовательных данных, разделенных на несколько файлов. Использование XmlDocument или LINQ не является вариантом, поскольку эти файлы огромны и загрузка 500 ГБ в память невозможна.

Поэтому я должен использовать XmlReader.

Имеющиеся у меня файлы фрагментированы в смысле XML, например:

Файл 1:

...
<Person>
  <FirstName>John</FirstName>
  <LastName>Doe</LastName>

Файл 2:

  <Email>[email protected]</Email>
</Person>
...

Одним из возможных решений является то, что мне нужен способ настроить поток, например:

using (XmlReader reader = XmlReader.Create(stream)) { ... }

таким образом, чтобы поток непрерывно передал XmlReader каждый файл последовательно. Поэтому, когда поток достигает конца файла, он автоматически передает ему следующий файл. Как бы я это сделал? Итак, для XmlReader это выглядит так, как будто он просто перебирает один большой поток, но этот поток состоит из нескольких последовательных файлов?

Спасибо,

Эллисон


person Allison A    schedule 23.01.2013    source источник
comment
Я ненавижу голосовать за закрытие, так как это действительно хорошо написанный вопрос, но мой ответ будет просто копией и вставкой связанного вопроса.   -  person Bobson    schedule 23.01.2013


Ответы (1)


Linq to xml съест массивные xml-файлы на завтрак.

знаете ли вы о http://msdn.microsoft.com/en-us/library/system.xml.linq.xnode.readfrom.aspx ?

person Loofer    schedule 23.01.2013