XmlDocument :: Save()将xml附加到文件中

时间:2010-02-25 10:57:20

标签: c# .net xmldocument

我想在一个类中保留一个XmlDocument对象,让方法对它进行更改并保存它。

    using (FileStream fs = new FileStream(@"D:\Diary.xml", 
            FileMode.Open, FileAccess.ReadWrite, FileShare.Read))
    {
                        XmlDocument xmlDoc = new XmlDocument();
                        xmlDoc.Load(fs);

                        .... make some changes here

                        xmlDoc.Save(fs);
    }

上面的代码在文件中制作了两个xml结构的副本。

4 个答案:

答案 0 :(得分:3)

尝试

fs.SetLength(0);
保存电话之前

答案 1 :(得分:2)

添加:

fs.Position = 0;
保存电话之前

答案 2 :(得分:0)

foole的解决方案中的fs.Position不起作用似乎有点奇怪。

等效于

fs.Seek(0, SeekOrigin.Begin);

可选地

而不是使用相同的文件流:

            //OrigPath is the path you're using for the FileReader

            System.Xml.XmlWriter writer = System.Xml.XmlWriter.Create(OrigPath);
            xmlDoc.Save(writer);
            writer.Close();

答案 3 :(得分:0)

或者即使这样也可行......

        XmlDocument xmlDoc = new XmlDocument( );
        xmlDoc.Load( @"D:\Diary.xml" );

        //.... make some changes here
        XmlText node = xmlDoc.CreateTextNode( "test" );
        xmlDoc.DocumentElement.AppendChild( node );

        xmlDoc.Save( @"D:\Diary.xml" );