我有一个这样的XmlDocument:
<Root>
<Settings>
<PresentationSettings>
</PresentationSettings>
</Settings>
</Root>当我用这段文字设置InnerXml of <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,同时使用上面的methods.XmlDocumentFragment.有人能指出我的写作方向吗?我做错了什么?
发布于 2012-03-19 21:08:57
您应该使用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();https://stackoverflow.com/questions/9777742
复制相似问题