日期:2014-05-18  浏览次数:20866 次

关于xml修改不能保存的问题
一个简单的xml
XML code

<?xml version="1.0" encoding="utf-8"?>
<BookShop>
  <Book ISBN="1-1002">
    <author>jack</author>
  </Book>
</BookShop>



对其author进行操作
C# code

private void button1_Click(object sender, System.EventArgs e)
{
            
    XmlDocument xmldoc=new XmlDocument();
    xmldoc.Load("D:\\xmltest\\xmlTest2\\book.xml");
    XmlNode node=xmldoc.SelectSingleNode("BookShop/Book[@ISBN='1-1002']");
    if(node!=null)
    {
        node["author"].InnerText="bob";
    }

    xmldoc.Save("D:\\xmltest\\xmlTest2\\book.xml");
    GC.Collect();
}


第一次按下button1执行,没问题,第二次按下就报错了,该进程无法访问文件
D:\\xmltest\\xmlTest2\\book.xml,因为该文件被另一进程使用。
查了很多资料都说是数据流的问题,什么sr.close(),fs.close(),都不太明白,有没有哪位高手把这段代码修改修改

------解决方案--------------------
同样的代码在我机器上运行无问题,lz得仔细检查下!
------解决方案--------------------
应该没问题,他们说的sr.close(),fs.close()这个是操作流的问题,和你这边没有什么关联吧