将字符串写入XML文件而不进行格式化(C#)

我编写了一个函数,它根据我的应用程序中保存的数据构建XML字符串。 接下来,应将此字符串写入实际的XML文件,以便可以使用它。 然后,此文件将在HTML Web应用程序中用于提供数据。 我正在使用以下代码片段来做到这一点:

xmlDoc.Save("exercise.xml"); 

很容易,但有一个小的捕获。 我的XML文件在Firefox中无法正常工作,因为它将空格视为childNode。 重写我的整个Web应用程序几乎是不行的,因为它的工作量太大了。 我宁愿能够以非格式化的方式将我的XML字符串保存到XML文件,因为我已经测试并确认它几乎适用于所有可想到的浏览器。 字符串本身不包含任何回车符或制表符,因此Save() – 方法可能会自动添加它。 有什么方法可以阻止它这样做,或者另一种简单的方法来规避这个?

尝试

 xDoc.PreserveWhitespace = true; xDoc.Save(...); 

看看这个XmlDocument.Save重载。 这是一个完整的代码示例,可以在没有空格缩进的情况下保存XML:

 using (XmlWriter xw = XmlWriter.Create("exercise.xml", new XmlWriterSettings { Indent = false })) doc.Save(xw); 

你有一个包含工作xml的字符串,为什么你不能直接使用TextWriter / StreamWriter将其推送到文件?

我承认我没有对此进行过测试,但希望这能为您提供最终解决方案的暗示

 var xws = new XmlWriterSettings { Indent = false, NewLineOnAttributes = false }; using (var xtw = XmlTextWriter.Create("exercise.xml", xws)) { xmlDoc.Save(xtw); } 

您是否尝试过将自己构建的字符串写入文件? 像这样的东西:

 var myXML= "something something something dark side"; var file = new System.IO.StreamWriter("c:\\file.xml"); file.WriteLine(myXML); file.Close();