在用XElement保存XML文件时,文件中的对齐方式也会发生变化,如何避免

本文关键字:文件 何避免 变化 方式 保存 XElement XML 在用 对齐 | 更新日期: 2023-09-27 18:10:36

我使用

XElement root = XElement.Load(filepath);

加载XML文件,然后找到我需要的东西。

IEnumerable<XElement> commands = from command in MyCommands
                                 where (string) command.Attribute("Number") == Number
                                 select command;
foreach (XElement command in commands)
{
     command.SetAttributeValue("Group", GroupFound);
}

当我完成修改后,我用下面的代码保存文件。

root.Save(filepath);

保存文件时,XML文件中的所有行都会受到影响。Visual Studio默认对齐所有行,但我需要保存原始文件格式。

我不能修改文档的任何部分,除了Group属性值。

command.SetAttributeValue("Group") attributes.

在用XElement保存XML文件时,文件中的对齐方式也会发生变化,如何避免

您需要做的是:

XElement root = XElement.Load(filepath, LoadOptions.PreserveWhitespace);

那么做:

root.Save(filepath, SaveOptions.DisableFormatting);

这将通过使用LoadOptions和SaveOptions来保留您的原始空白。

您希望保存的信息在XDocument中开始丢失。

XDocument不关心你的元素是否有制表符或空格在他们前面的行,如果有多个空白属性等。如果你想依靠Save()方法,你必须放弃保留格式的想法。

要保留格式,您需要添加自定义处理并确定在哪里进行更改。或者,如果XML来自机器而不是人工编辑的

,则可以调整保存选项以匹配格式。