我想在一个类中保留一个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结构的副本。
答案 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" );