如何使用XmlReader执行嵌套读取?

时间:2015-02-18 10:10:49

标签: c# xml

由于内存要求,我必须使用XmlReader来处理xml文件,所以我是这个类的新手。在我烘焙异常之前,如何使用XmlReader执行嵌套读取?

我的意思是,我位于xml文件的中间,位于某个节点<p> - 我只想阅读关于</p>这个<p>我提及。

当使用递归调用某些处理函数时,这种“嵌套读取”(即不再进行读取)非常有用。正常Read将继续到文件末尾。

1 个答案:

答案 0 :(得分:2)

听起来你正在寻找ReadSubtree method - 该方法将当前元素视为自己的文档,并返回XmlReader。关闭该阅读器后,您的原始阅读器将放在阅读元素的结束标记之后。

关于你的问题的一句话:

  

正常Read会一直持续到文件的末尾。

嗯,不是自动如此,但你是对的,需要注意不要超过结束标签,并且没有办法确保其他组件在通过原始阅读器时不会这样做。

使用ReadSubtree时需要注意的一点是:新阅读器最初指向元素的开始标记,它将指向开始标记之前的位置。因此,在调用ReadSubtree后,您通常首先要在子树阅读器上调用Read()一次。