当前位置: 首页 > 编程语言 > C#

如何在XmlTextWriter中设置Settings属性以便我可以将每个XML属性写在自己的行上?Share

时间:2023-04-11 00:53:27 C#

我如何在XmlTextWriter中设置Settings属性,以便我可以在自己的行中编写每个XML属性?我有一些将对象序列化为文件的代码。我试图将每个XML属性输出在单独的行上。代码如下所示:XmlWriterSettingssettings=newXmlWriterSettings();settings.NewLineOnAttributes=true;XmlTextWriterwriter=newXmlTextWriter(filePath,Encoding.UTF8);writer.Settings=设置;//在这里失败。属性是只读的。使用(StreambaseStream=writer.BaseStream){serializer.Serialize(writer,obj);唯一的问题是,XmlTextWriter对象的Settings属性是只读的。如何设置XmlTextWriter对象的Settings属性,以便NewLineOnAttributes设置起作用?嗯,我想我需要一个XmlTextWriter,因为XmlWriter是一个抽象类。如果你问我,有点困惑。最终的工作代码在这里://////将对象序列化为XML文件;将每个XML属性写入一个新行。///publicstaticvoidToXMLFile(Objectobj,stringfilePath){XmlSerializerserializer=newXmlSerializer(obj.GetType());XmlWriterSettingssettings=newXmlWriterSettings();设置.Indent=true;settings.NewLineOnAttributes=true;使用(XmlWriterwriter=XmlWriter.Create(filePath,settings)){serializer.Serialize(writer,obj);}}使用XmlWriter的静态Create()方法。XmlWriter.Create(文件路径,设置);请注意,您可以在设置中设置NewLineOnAttributes属性。我知道这个问题很老了,无论如何,实际上可以为XMLTextWriter设置缩进。与XMLwriter不同,您不必传递设置;您应该使用Formatting属性:XmlTextWriterwriter=newXmlTextWriter(filePath,Encoding.UTF8);w.Formatting=Formatting.Indented;参见https://msdn.microsoft.com/en-us/library/system.xml.xmltextwriter.formatting(v=vs.110).aspx以上是C#学习教程:HowtosettheSettingspropertyinXmlTextWriterso我可以在自己的行中编写每个XML属性吗?如果所有分享的内容对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: