首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Xml InnerXml缩进问题

Xml InnerXml缩进问题
EN

Stack Overflow用户
提问于 2012-03-19 20:51:05
回答 1查看 1.3K关注 0票数 3

我有一个这样的XmlDocument

代码语言:javascript
复制
<Root>
  <Settings>
    <PresentationSettings>
    </PresentationSettings>
  </Settings>
</Root>

当我用这段文字设置InnerXml of <PresentationSettings> .

代码语言:javascript
复制
<Desktop>
  <WidgetElements>
    <WidgetElement Name="1">
    </WidgetElement>
    <WidgetElement Name="2">
    </WidgetElement>
  </WidgetElements>
</Desktop>

.输出文件保存如下:

代码语言:javascript
复制
<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 }.
  • Converting到XDocument,同时使用上面的methods.
  • Using XmlDocumentFragment.

有人能指出我的写作方向吗?我做错了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-03-19 21:08:57

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

相反,写:

代码语言:javascript
复制
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();
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9777742

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档