什么可能导致空白的XML文件?

时间:2013-01-08 14:15:45

标签: .net xml .net-4.0

我正在使用带有.NET 4.0的C#,我正在尝试使用我的应用程序调试一个罕见的问题,有时程序会读取我的.xml文件,我会读取和编写配置设置并写入一个空白的XML文件。

问题是我无法在详尽的尝试之后重新创建它,所以我想我可能会确保没有已知的内置XmlDocument.Save()功能可能导致空白文件的情况。

修改XML文件的唯一方法是使用内置的XmlNode.AppendChild()XmlNode.ReplaceChild()在内存中,所以我希望问题发生在其中一个函数中或者写入磁盘{ {1}}功能。

3 个答案:

答案 0 :(得分:4)

我找到了this个帖子。 特别是第二个答案可能值得一试。引用:

似乎有效的解决方法是替换:

doc.Save("c:\temp\Output.xml")

IO.File.WriteAllText("c:\temp\Output.xml", doc.OuterXml);

答案 1 :(得分:1)

我理解正确,您正在加载空白的xml文件并添加配置请求并将其保存回来。

如果是这种情况,您可能需要检查该xml文件的写入权限,有时如果您没有权限,则不会将任何内容写入文件。

我希望它可以帮到你。

答案 2 :(得分:0)

我有类似的问题。 我有

var infoTableWriter = new XmlTextWriter(saveFileDialog.FileName, new UTF8Encoding(false));
xmlInfoTableDoc.Save(infoTableWriter);

没有关闭编写器,因此保存了一个空(0字节)文件

var infoTableWriter = new XmlTextWriter(saveFileDialog.FileName, new UTF8Encoding(false));
xmlInfoTableDoc.Save(infoTableWriter);
infoTableWriter.Close();

工作正常。我希望这会有所帮助。