嵌套XmlReader

时间:2012-11-21 20:02:25

标签: c# xmlreader

我需要搜索xml文件,查找数据集,检查第二个xml文件,检查是否有相关数据,然后转到下一个数据集。

以下是一些示例代码:

XmlReader XmlDoc1 = XmlReader.Create("~/data/xml/myxml1.xml",settings);
XmlReader XmlDoc2= XmlReader.Create("~/data/xml/myxml2.xml",settings);

using (XmlDoc1) {
    XmlDoc1.Open();
    //get a data node
    using(XmlDoc2){
        XmlDoc2.Open();
        //find related information... if it's there
        XmlDoc2.Close();
   }
   //do stuff
   XmlDoc1.Close();
}

我很确定上面的代码会产生错误,但是读取XmlDoc1,获取数据集,关闭它,搜索XmlDoc2,关闭它...洗涤,冲洗,重复将花费太多时间。所以,我正在寻找一种快速的方法来实现上述目标。

在你提问之前,我无法在这个网站上运行数据库,所以XML就足够了。

1 个答案:

答案 0 :(得分:1)

同时打开两个读者没有问题。但是,在处置它之后(通过XmlDoc2块),您无法重用using

XmlReader仅向前推进,所以基本上每次迭代都会运行XmlDoc2

如果速度是您的关注点,您可以尝试让XmlDoc1成为XmlReader(当您从上到下运行一次时),并使用建议的{{1}之一内部xml的{或} XmlDocument类。