为什么我的所有换行符都从“/ r / n”变为“/ n /”,我怎么能阻止这种情况发生?

时间:2010-07-14 00:35:42

标签: c# xml wpf linq-to-xml

我使用XDocument.Save(路径)将文件保存为xml文档,保存并加载文档后,所有换行符都从“/ r / n”更改为“/ n /”。为什么会发生这种情况?我该如何解决?

2 个答案:

答案 0 :(得分:5)

您可以使用XmlWriterSettings来控制换行符:

XmlWriterSettings xws = new XmlWriterSettings();
xws.NewLineChars = "\r\n";
using (XmlWriter xw = XmlWriter.Create("whatever.xml", xws))
{
   xmlDocumentInstance.Save(xw);
}

无论您在XML中使用什么内容,都可能会使您的行结束正常化。

答案 1 :(得分:1)

如果在调用Load()和Save()之前在XmlDocument对象上设置PreserveWhiteSpace属性,则不会发生这种情况:

var doc = new XmlDocument();
doc.PreserveWhitespace = true;
doc.Load("foo.xml");
...
doc.Save("bar.xml"); // Line endings will not be altered