【问题标题】:XDocument how to save without Byte Order Mark AND preseve formatting/whitespaceXDocument如何在没有字节顺序标记的情况下保存并保留格式/空白
【发布时间】:2019-07-05 07:27:34
【问题描述】:

我可以使用此代码删除字节顺序标记:

using (var writer = new XmlTextWriter(file, new UTF8Encoding(false)))
{
    writer.Formatting = Formatting.None;
    xdoc.Save(writer);
}

这个问题是我的格式变得混乱并且所有的空格都被删除了。例如:

<root>
  <data name="A" xml:space="preserve">
    <value>A</value>
  </data>
</root>

现在变成:

<root><data name="A" xml:space="preserve">
    <value>A</value>
</data></root>

有没有什么办法可以去掉这个字节顺序标记,保留文件的原始格式?

【问题讨论】:

  • 你为什么要设置writer.Formatting = Formatting.None;?尝试设置writer.Formatting = Formatting.Indented;,或者根本不设置。
  • 我真是个白痴……这确实解决了我花了很长时间试图解决的问题!

标签: c#


【解决方案1】:

问题已解决(因创建不必要的空白而更新):

XmlWriterSettings settings = new XmlWriterSettings();
settings.Indent = true;
settings.Encoding = new UTF8Encoding(false);
using (var writer = XmlWriter.Create(file, settings))
{
     xdoc.Save(writer);
}

【讨论】:

    猜你喜欢
    • 2012-06-12
    • 1970-01-01
    • 2021-09-24
    • 1970-01-01
    • 2017-12-21
    • 2021-12-07
    • 1970-01-01
    • 2020-08-30
    • 1970-01-01
    相关资源
    最近更新 更多