扁平化的 XML 文件 c#

24 浏览
0 Comments

扁平化的 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++打开文件。

0
0 Comments

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文件更易于阅读和理解。

0