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

我在用

XElement root = XElement.Load(filepath); 

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

 IEnumerable 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 root = XElement.Load(filepath, LoadOptions.PreserveWhitespace); 

然后做:

 root.Save(filepath, SaveOptions.DisableFormatting); 

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

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

XDocument不关心你的元素在它们前面的行上是否有标签或空格,以及属性之间是否有多个空格等。如果你想依赖Save()方法,你必须放弃你可以保留的想法格式。

要保留格式,您需要添加自定义处理并找出准确更改的位置。 或者,如果您的XML来自计算机而非人工编辑,您可以调整保存选项以匹配您的格式