读取XML文件和缩进

SNp*_*Npn 2 c# xml indentation

我一直遇到XML文件缩进的问题.每次我从某个服务器加载它们时,XML节点都会乱七八糟.我想写一个快速的应用程序来正确缩进节点.那是:

<name>Bob<name>
<age>24</age>
<address>
  <stnum>2</stnum>
  <street>herp derp st</street>
</address>
Run Code Online (Sandbox Code Playgroud)

目前正在出现:

<name>bob</name><age>24</age>
<address>
      <stnum>2</stnum><street>herp derp st</street>
</address>
Run Code Online (Sandbox Code Playgroud)

因为我无法触摸给我这些xml文件的内部程序并且在没有程序的情况下重新缩进它们需要很长时间,我想写一个快速程序来为我做这个.当我使用XMLdocument库时,它只读取节点的信息.所以我的问题是,有什么方法可以一行一行地读取文件,然后为我重新输入文件.所有xml节点都是相同的.

谢谢.

小智 5

您可以使用XmlTextWritter类.更具体地说.Formatting = Formatting.Indented.

以下是我在此博客文章中找到的一些示例代码. http://www.yetanotherchris.me/home/2009/9/9/formatting-xml-in-c.html

public static string FormatXml(string inputXml)
{
    XmlDocument document = new XmlDocument();
    document.Load(new StringReader(inputXml));

    StringBuilder builder = new StringBuilder();
    using (XmlTextWriter writer = new XmlTextWriter(new StringWriter(builder)))
    {
        writer.Formatting = Formatting.Indented;
        document.Save(writer);
    }

    return builder.ToString();
}
Run Code Online (Sandbox Code Playgroud)