我编写了一个函数,该函数根据保存在应用程序中的数据构建XML字符串。接下来,此字符串应写入实际的 XML 文件,以便可以使用。然后,此文件将在 HTML Web 应用程序中用于馈送数据。我使用以下代码片段来做到这一点:
xmlDoc.Save("exercise.xml");
很简单,但有一个小问题。我的XML文件在Firefox中无法正常工作,因为它将空格视为子节点。重写我的整个 Web 应用程序几乎是不行的,因为它的工作太多了。我宁愿能够以非格式化的方式将我的 XML 字符串保存到 XML 文件中,因为我已经测试并确认这几乎适用于所有可以想象的浏览器。字符串本身不包含任何回车符或制表符,因此 Save()-方法可能会自动添加它。有什么方法可以防止它这样做,或者另一种简单的方法来规避这一点?
看看这个 XmlDocument.Save 重载。下面是一个完整的代码示例,用于保存不带空格缩进的 XML:
using (XmlWriter xw = XmlWriter.Create("exercise.xml", new XmlWriterSettings { Indent = false }))
doc.Save(xw);
试试
xDoc.PreserveWhitespace = true;
xDoc.Save(...);
你有一个包含工作xml的字符串,为什么你不能直接使用TextWriter/StreamWriter将其推送到文件中?
我承认我没有测试过这个,但希望这能给你一个关于最终解决方案的提示
var xws = new XmlWriterSettings
{
Indent = false,
NewLineOnAttributes = false
};
using (var xtw = XmlTextWriter.Create("exercise.xml", xws))
{
xmlDoc.Save(xtw);
}
您是否尝试过将已构建的字符串写入文件?像这样:
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();