[英]Xml InnerXml indentation issue
我有一个像这样的XmlDocument
:
<Root>
<Settings>
<PresentationSettings>
</PresentationSettings>
</Settings>
</Root>
当我用这个文本设置<PresentationSettings>
的InnerXml
时......
<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
。 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();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.