如何显示格式化的XML

Joe*_*Joe 6 xml asp.net-mvc

我有xml数据,我将返回到我的视图.我把它放在textarea中,但这显示它没有格式化.如何格式化xml以在我的视图中显示?

我将只在页面的一部分显示xml,所以我不能让IE显示它.我希望它是标准的xml缩进格式.

Ric*_*lay 6

如果通过"格式化",你的意思是缩进,那么你可以将其加载到XmlDocument的,并将其写入到的XmlWriter与初始化XmlWriterSettings已经缩进设置true.

private string FormatXml(string input)
{
    XmlDocument doc = new XmlDocument();
    doc.LoadXml(input);

    using (StringWriter buffer = new StringWriter())
    {
        XmlWriterSettings settings = new XmlWriterSettings();
        settings.Indent = true;

        using (XmlWriter writer = XmlWriter.Create(buffer, settings))
        {
            doc.WriteTo( writer );

            writer.Flush();
        }

        buffer.Flush();

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

  • 从.NET 4.0开始,`XmlTextWriter`肯定不会被弃用.简单地*建议*使用`XmlWriter.Create`而不是XmlTextWriter ctor.我已经更新了代码来处理资源,尽管它只是一个开始的样本. (2认同)

Joh*_*ers 6

只需将XML加载到一个XElement,然后使用XElement.ToString().