在C#中保留已编辑的XML文件的缩进

Sha*_*har 3 c# app-config linq-to-xml

作为我的安装过程的一部分,我更新了app.config文件中的一些值,该文件以帮助用户读取值的方式构建和缩进.它是按部分构建的,每个部分都是一个XElement,每个值都是一个XAttribute.

这是部分的示例:

<DataAccessSection
  DataMappingFile = "Data\Mapping.xml"
  SchemaKeyWord = "[generated]"
/>
<ServiceManagementSection
  ServerName = "dummy"
  ServerIP = "1.0.0.0"
  Port = "1"
/>
Run Code Online (Sandbox Code Playgroud)

我使用XDocument编辑文件,访问该部分的XElement并更改XAttribute的值,然后使用XDttribute的值保存更改 xDocument.Save(fullpath);

保存文件后,配置文件的结构如下:

<DataAccessSection DataMappingFile="Data\Mapping.xml" SchemaKeyWord="[generated]" />
<ServiceManagementSection ServerName="dummy" ServerIP="1.0.0.0" Port="1" />
Run Code Online (Sandbox Code Playgroud)

这种结构对于用户来说并不是那么清楚,如何将文件保存在初始结构中并仅更改值而不是缩进?

我可以打开它并将其编辑为一个简单的文本文件,但是当我具有结构化XML文件的强大功能时,像文本文件一样访问它似乎很愚蠢.

编辑:谢谢你的回答.

我在答案中尝试了解决方案,但它不断删除我的空白区域和缩进.我也尝试加载使用:

XDocument.Load(fullPath, LoadOptions.PreserveWhiteSpaces);
Run Code Online (Sandbox Code Playgroud)

但它并没有解决我的问题.保留所有空格的唯一方法是将其作为文本文件加载,并使用String操作进行编辑,但我不想这样做.

有没有人有不同的方法来解决这个问题?

也许使用不同的包进行XML编辑?

Mic*_*elT 6

在保存时调用xDocument.Load和SaveOptions.DisableFormatting时使用LoadOptions.PreserveWhitespace