将字符串写入不带格式的 XML 文件 (C#)

本文关键字:文件 XML 格式 字符串 | 更新日期: 2023-09-27 17:56:25

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

xmlDoc.Save("exercise.xml");

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

将字符串写入不带格式的 XML 文件 (C#)

看看这个 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();