我正在使用 XmlReader 浏览一个相对较大的 Xml (10Gb+)。假设 Xml 在深度 1 上具有以下节点名称
使用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 的非常深的节点。我试图在这个例子中简化该结构..
如果您从您提供的代码中删除与“第 2 章”相关的条件和块,这会给您带来您想要的结果吗?