扁平化的 XML 文件 c#
扁平化的 XML 文件 c#
我用以下的代码将XML文件以UTF-8(无BOM)的编码方式写入:\n
xmldecl.Encoding = "UTF-8"; dataDoc.InsertBefore(xmldecl, root);//dataDoc是XmlDocument对象 using (var writer = new XmlTextWriter(targetPath, new UTF8Encoding(false))) { dataDoc.Save(writer); }
\n问题是文件以一行的形式保存,而不是XML格式化的形式,例如,如果我有以下的XML:\n
\n使用我的代码,XML文件会是这样的:\n
\n而不是XML格式的。\n我该如何解决这个问题?\n*我尝试用Notepad++打开文件。
Flat xml file c#这个问题出现的原因是XmlTextWriter类的Formatting属性未设置为Formatting.Indented,导致生成的XML文件没有缩进格式。解决方法是将Formatting属性设置为Formatting.Indented。
在C#中,可以使用XmlTextWriter类来创建XML文件。XmlTextWriter类提供了Formatting属性来定义输出的格式。默认情况下,Formatting属性的值为Formatting.None,这意味着生成的XML文件将没有任何格式,所有的标签都将在一行上显示。
要将XML文件设置为缩进格式,可以将Formatting属性设置为Formatting.Indented。通过以下代码实现:
using (var writer = new XmlTextWriter(targetPath, new UTF8Encoding(false))) { writer.Formatting = Formatting.Indented; dataDoc.Save(writer); }
在上述代码中,首先创建了一个XmlTextWriter对象writer,指定了目标文件的路径targetPath和编码方式UTF8Encoding。然后,将Formatting属性设置为Formatting.Indented。最后,使用dataDoc.Save(writer)将XML文档保存到文件中。
通过将Formatting属性设置为Formatting.Indented,生成的XML文件将具有缩进格式,使得XML文件更易于阅读和理解。