Быстрое перемещение по XML с помощью XmlReaderC#

Место общения программистов C#
Ответить
Anonymous
 Быстрое перемещение по XML с помощью XmlReader

Сообщение Anonymous »

Я просматриваю относительно большой XML-файл (10 ГБ и более), используя XmlReader. Допустим, Xml имеет следующие имена узлов на глубине 1
  • chapter1
  • chapter2
  • chapter3
  • ...
При использовании Xmlreader я читаю его следующим образом

Код: Выделить всё

while (reader.Read())
{
string name = reader.GetAttribute("name");
if (name == "chapter1")
{
// Do something
XmlReader chapter1Reader = reader.ReadSubtree();
} else if (name == "chapter2") {
// do more
XmlReader chapter2Reader = reader.ReadSubtree();
} else if (name == "chapter3") {
// do more
XmlReader chapter3Reader = reader.ReadSubtree();
} else if ...

}
Я создаю ReadSubtree, чтобы гарантировать, что я беру информацию только из этой конкретной главы. Теперь я хотел бы пропустить содержание главы 2. Как лучше всего это сделать?
Должен ли я вызывать Chapter2Reader.Dispose() или, скорее, Chapter2Reader.Skip()? Кажется, я не могу найти информацию по этому поводу, и я не уверен в экспериментах по времени, которые я пробовал...
Обратите внимание, что это вымышленный пример очень большого XML-файла. Структура моего Xml похожа: в нем есть пара узлов с глубиной 1, которые уходят очень глубоко. В этом примере я попытался упростить эту структуру.

Подробнее здесь: https://stackoverflow.com/questions/790 ... -xmlreader
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»