【问题标题】:C# write to XML errorC# 写入 XML 错误
【发布时间】:2011-03-01 18:46:39
【问题描述】:

我无法写入我的 XML 文件

这是我的代码:

path = test.xml


FileStream READER = new FileStream(path, FileMode.Open,FileAccess.Read,FileShare.ReadWrite);
System.Xml.XmlDocument Template = new System.Xml.XmlDocument();
Template.Load(READER);

//WRITE TO XML

FileStream WRITER = new FileStream(path, FileMode.Open, FileAccess.Write, FileShare.ReadWrite); //Set up the filestream (READER) //
Template.Save(WRITER);

我第一次点击按钮时它可以工作,但如果我再次点击它,我会收到错误

xmlexception handle 根级别的数据无效。第 87 行,位置 10。

是不是因为xml文档没有关闭?如果是这样我该怎么做呢

谁能帮帮我

***** 更新 *****

我现在已经开始工作了。 我的新代码仅供那些可能也在为此苦苦挣扎的人:

路径 = test.xml

using(FileStream READER = new FileStream(path, FileMode.Open,FileAccess.Read,FileShare.ReadWrite))
{
    System.Xml.XmlDocument Template = new System.Xml.XmlDocument();
    Template.Load(READER);

    //WRITE TO XML

    using(FileStream WRITER = new FileStream(path, FileMode.Open, FileAccess.Write, FileShare.ReadWrite))
    {
    Template.Save(WRITER);
    }
}

【问题讨论】:

    标签: c# xml filestream


    【解决方案1】:

    任何时候您使用流 api 都需要关闭并处理掉它们。使用 'using' 关键字很有帮助,例如:

    using (FileStream READER = new FileStream(path, FileMode.Open,FileAccess.Read,FileShare.ReadWrite)){
    /* ... your processing here */
    }
    

    【讨论】:

    • 如果您没有这样做,您需要在阅读器和作者部分都这样做。你能发布你更新的代码吗?
    猜你喜欢
    • 2018-07-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多