gpt4 book ai didi

c# - Xml InnerXml 缩进问题

转载 作者:数据小太阳 更新时间:2023-10-29 02:36:56 26 4
gpt4 key购买 nike

我有一个 XmlDocument像这样:

<Root>
<Settings>
<PresentationSettings>
</PresentationSettings>
</Settings>
</Root>

当我设置 InnerXml<PresentationSettings>用这个文本...

<Desktop>
<WidgetElements>
<WidgetElement Name="1">
</WidgetElement>
<WidgetElement Name="2">
</WidgetElement>
</WidgetElements>
</Desktop>

...,输出文件是这样保存的:

<Root>
<Settings>
<PresentationSettings>
<Desktop>
<WidgetElements>
<WidgetElement Name="1">
</WidgetElement>
<WidgetElement Name="2">
</WidgetElement>
</WidgetElements>
</Desktop>
</PresentationSettings>
</Settings>
</Root>

看来InnerXml的根(即 <Desktop> )从右缩进列开始,但 InnerXml 的其余部分保留其原始缩进。我尝试了很多方法,但所有方法都给出了完全相同的输出。我试过的方法是:

  • XmlTextWriterFormatting = Formatting.Indented .
  • XmlWriterXmlWriterSettings { Indent = true } .
  • 转换为 XDocument使用上述两种方法。
  • 使用 XmlDocumentFragment .

任何人都可以指出我的写作方向吗?我做错了什么?

最佳答案

您应该使用 XDocument 或 XElement,XmlDocument 是 .Net 2.0 又名过时的。

改为写:

XElement root = XElement.Parse("<Root><Settings><PresentationSettings></PresentationSettings></Settings></Root>");
XElement pSettings = root.Element("Settings").Element("PresentationSettings");
pSettings.Add(otherContentXml);
root.Save(fileName);
or
string formattedXml = root.ToString();

关于c# - Xml InnerXml 缩进问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9777742/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com