使xml更具可读性

Pet*_*ter 5 .net c# xml vb.net text-formatting

有没有办法在.net中获取xml字符串并使其更容易阅读?我的意思是我可以转换这个:

<element1><element2>some data</element2></element1>
Run Code Online (Sandbox Code Playgroud)

对此:

<element1>
    <element2>
        some data
    </element2>
</element1>
Run Code Online (Sandbox Code Playgroud)

有没有内置的课程?因为sql server 2005似乎删除了xml上的所有格式以节省空间或某些东西......

Jon*_*eet 16

如果您使用的是.NET 3.5,则可以将其作为一个加载XDocument,然后只需调用ToString(),它将适当地缩进它.例如:

using System;
using System.Xml.Linq;

public class Test
{
    static void Main()
    {
        string xml = "<element1><element2>some data</element2></element1>";

        XDocument doc = XDocument.Parse(xml);
        xml = doc.ToString();
        Console.WriteLine(xml);
    }
}
Run Code Online (Sandbox Code Playgroud)

结果:

<element1>
  <element2>some data</element2>
</element1>
Run Code Online (Sandbox Code Playgroud)

如果您将其写入文件或其他流,则XDocument.Save(默认情况下)也会缩进它.

(我相信你XElement有相同的功能,如果你真的不需要XDocument.)


Fre*_*els 5

如何将XML保存/写回文件?

您可以创建一个XmlWriter并将其传递给XmlWriterSettings实例,您可以将Indent属性设置为true:

XmlWriterSettings settings = new XmlWriterSettings();
settings.Indent = true;

XmlWriter writer = XmlWriter.Create (outputStream, settings);
Run Code Online (Sandbox Code Playgroud)