由DataContractSerializer创建的XML的格式 [英] Formatting of XML created by DataContractSerializer

查看:229
本文介绍了由DataContractSerializer创建的XML的格式的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

有没有一种简单的方法让DataContractSerializer吐出格式化的XML而不是一个长字符串?我不想以任何方式更改标签或内容,只是为了使XML更具可读性而添加换行符和缩进功能?

 < TAGA> 
< tagB>这是< / tagB>
< tagC>很多< / tagC>
< tagD>
< tagE>更易于阅读< / tagE>
< / tagD>
< / tagA>

$ b< tagA>< tagB>这是< / tagE>< / tagB>< / tag>< / tagC>< tag>< < / tagD>< / TAGA>


解决方案

正如bendewey所说,XmlWriterSettings就是您所需要的。像

  var ds = new DataContractSerializer(typeof(Foo)); 

var settings = new XmlWriterSettings {Indent = true};

使用(var w = XmlWriter.Create(fooOutput.xml,settings))
ds.WriteObject(w,someFoos);


Is there an easy way to get DataContractSerializer to spit out formatted XML rather then one long string? I don't want to change the tags or content in any way, just have it add line breaks and indentation to make the XML more readable?

<tagA>
   <tagB>This is</tagB>   
   <tagC>Much</tagC>
   <tagD>
      <tagE>easier to read</tagE>
   </tagD>
</tagA>


<tagA><tagB>This is</tagB><tagC>Much</tagC><tagD><tagE>harder to read</tagE></tagD></tagA>

解决方案

As bendewey says, XmlWriterSettings is what you need - e.g. something like

var ds = new DataContractSerializer(typeof(Foo));

var settings = new XmlWriterSettings { Indent = true };

using (var w = XmlWriter.Create("fooOutput.xml", settings))
    ds.WriteObject(w, someFoos);

这篇关于由DataContractSerializer创建的XML的格式的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆