我有XmlDocument
这样:
<Root>
<Settings>
<PresentationSettings>
</PresentationSettings>
</Settings>
</Root>
当我使用此文本设置InnerXml
的{{1}}时
<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
与XmlTextWriter
。Formatting = Formatting.Indented
与XmlWriter
。XmlWriterSettings { Indent = true }
。XDocument
。有人能指出我的写作方向吗?我做错了什么?
答案 0 :(得分:2)
你应该使用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();