Быстрое перемещение по 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

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