使用 XmlReader 快速浏览 Xml

问题描述 投票:0回答:1

我正在使用 XmlReader 浏览一个相对较大的 Xml (10Gb+)。假设 Xml 在深度 1 上具有以下节点名称

  • 第一章
  • 第2章
  • 第3章
  • ...

使用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 的非常深的节点。我试图在这个例子中简化该结构..

c# xmlreader
1个回答
0
投票

如果您从您提供的代码中删除与“第 2 章”相关的条件和块,这会给您带来您想要的结果吗?

© www.soinside.com 2019 - 2024. All rights reserved.