我写了一个函数,它根据我的应用程序中保存的数据构建XML字符串。 接下来,应将此字符串写入实际的XML文件,以便可以使用它。 然后,此文件将在HTML Web应用程序中用于提供数据。 我正在使用以下代码片段来做到这一点:
xmlDoc.Save("exercise.xml");
足够简单,但有一点小问题。 我的XML文件在Firefox中无法正常工作,因为它将空格视为childNode。 重写我的整个Web应用程序几乎是不行的,因为它的工作量太大了。 我宁愿能够以非格式化的方式将我的XML字符串保存到XML文件,因为我已经测试并确认它几乎适用于所有可想到的浏览器。 字符串本身不包含任何回车符或制表符,因此Save() - 方法可能会自动添加它。有什么方法可以阻止它这样做,或者另一种简单的方法来规避这个?
答案 0 :(得分:9)
看一下这个XmlDocument.Save重载。 这是一个完整的代码示例,可以在没有空格缩进的情况下保存XML:
using (XmlWriter xw = XmlWriter.Create("exercise.xml", new XmlWriterSettings { Indent = false }))
doc.Save(xw);
答案 1 :(得分:3)
尝试
xDoc.PreserveWhitespace = true;
xDoc.Save(...);
答案 2 :(得分:1)
你有一个包含工作xml的字符串,为什么你不能直接使用TextWriter / StreamWriter将其推送到文件?
答案 3 :(得分:1)
我承认我没有对此进行过测试,但希望这能为您提供最终解决方案的提示
var xws = new XmlWriterSettings
{
Indent = false,
NewLineOnAttributes = false
};
using (var xtw = XmlTextWriter.Create("exercise.xml", xws))
{
xmlDoc.Save(xtw);
}
答案 4 :(得分:1)
您是否尝试过将自己构建的字符串写入文件?像这样:
var myXML= "<root><node>something something something dark side</node></root>";
var file = new System.IO.StreamWriter("c:\\file.xml");
file.WriteLine(myXML);
file.Close();