【问题标题】:Save XDocument with UNIX line endings使用 UNIX 行结尾保存 XDocument
【发布时间】:2013-06-09 20:25:40
【问题描述】:

我的代码部分如下所示:

XDocument xml = new XDocument(
    new XElement("test1",
        new XElement("test2", "abc")
    )
);

我现在想使用 Save 方法保存 xml 文档:

xml.Save("test.xml");

然后我使用十六进制编辑器查看了该文件,发现它有 Windows 行结尾 (/r/n)。但是,我“只”需要 UNIX 行尾 (/n)。

提前致谢!

【问题讨论】:

  • 我“只”需要 UNIX 行尾 - 你认为你会节省多少?在简单的编辑器中查看时,这不值得编码或不便。
  • 不要误会我的意思。我真的需要 unix 行结尾,因为 xml 正在被另一个程序解析,这需要 xml 中的 unix 行结尾。
  • @ltsstar:另一个程序的 XML 解析器损坏; XML 必须不区分空格。
  • @SLaks:没错,但我现在无法修复它。
  • @HenkHolterman 就我而言,它最多可以节省 50kb。是的,不要问。

标签: c# xml line-endings


【解决方案1】:

你需要创建一个XmlWriter:

using (var w = XmlWriter.Create(path, new XmlWriterSettings { 
        NewLineChars = "\n", 
    }))
{
    xml.Save(w);
}

【讨论】:

    【解决方案2】:
    var xml = "<?xml version= ...";  //your xml string
    using (var w = XmlWriter.Create(path,
                        new XmlWriterSettings
                        {
                            NewLineChars = "\n",
                        })
    )
    {
        w.WriteRaw(xml);
    }
    

    【讨论】:

    • 能否请您为您的答案添加更多上下文。仅代码的答案很难理解。如果您可以在帖子中添加更多信息,这将对提问者和未来的读者都有帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-06-03
    • 1970-01-01
    • 2011-06-22
    • 1970-01-01
    • 1970-01-01
    • 2016-05-07
    • 1970-01-01
    相关资源
    最近更新 更多