每当我运行程序时,xml文件只是在原始代码上添加其他部分而不是替换它。 这是我的文件
XML:
<?xml version="1.0" encoding="utf-8" ?>
<stuff>stuff</stuff>
C#:
static void Main(string[] args)
{
XmlDocument doc = new XmlDocument();
FileStream f = new FileStream(@"C:\ file path", FileMode.Open);
doc.Load(f);
doc.SelectSingleNode("stuff").InnerText = "hi";
doc.Save(f);
}
产生的XML:
<?xml version="1.0" encoding="utf-8" ?>
<stuff>stuff</stuff><?xml version="1.0" encoding="utf-8"?>
<stuff>hi</stuff>
答案 0 :(得分:1)
我不确定为什么会这样,但我认为这与将内容加载到流并将其分配给同一个流有关。
也许你应该采用简单的方式(有效):
static void Main(string[] args)
{
XmlDocument doc = new XmlDocument();
doc.Load(@"C:\Temp\Test.xml");
doc.SelectSingleNode("stuff").InnerText = "hi";
doc.Save(@"C:\Temp\Test.xml");
}
答案 1 :(得分:0)
带有文件名的Save重载将实现您的目标。它会覆盖现有文件。
XmlDocument doc = new XmlDocument();
FileStream f = new FileStream(@"C:\file.xml", FileMode.Open);
doc.Load(f);
f.Close();
doc.SelectSingleNode("stuff").InnerText = "hi";
doc.Save(@"C:\file.xml");