首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >格式化XML字符串以打印友好的XML字符串

格式化XML字符串以打印友好的XML字符串
EN

Stack Overflow用户
提问于 2009-07-14 06:15:38
回答 7查看 237.1K关注 0票数 202

我有一个XML字符串:

代码语言:javascript
复制
<?xml version='1.0'?><response><error code='1'> Success</error></response>

一个元素和另一个元素之间没有分隔线,因此很难阅读。我想要一个函数来格式化上面的字符串:

代码语言:javascript
复制
<?xml version='1.0'?>
<response>
<error code='1'> Success</error>
</response> 

不需要自己手动编写格式函数,有没有什么.Net库或代码片段可以让我随意使用呢?

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2009-07-14 06:21:17

使用XmlTextWriter...

代码语言:javascript
复制
public static string PrintXML(string xml)
{
    string result = "";

    MemoryStream mStream = new MemoryStream();
    XmlTextWriter writer = new XmlTextWriter(mStream, Encoding.Unicode);
    XmlDocument document = new XmlDocument();

    try
    {
        // Load the XmlDocument with the XML.
        document.LoadXml(xml);

        writer.Formatting = Formatting.Indented;

        // Write the XML into a formatting XmlTextWriter
        document.WriteContentTo(writer);
        writer.Flush();
        mStream.Flush();

        // Have to rewind the MemoryStream in order to read
        // its contents.
        mStream.Position = 0;

        // Read MemoryStream contents into a StreamReader.
        StreamReader sReader = new StreamReader(mStream);

        // Extract the text from the StreamReader.
        string formattedXml = sReader.ReadToEnd();

        result = formattedXml;
    }
    catch (XmlException)
    {
        // Handle the exception
    }

    mStream.Close();
    writer.Close();

    return result;
}
票数 203
EN

Stack Overflow用户

发布于 2009-07-14 07:25:24

你将不得不以某种方式解析内容...我发现使用LINQ是最简单的方法。同样,这完全取决于您的确切场景。下面是一个使用LINQ格式化输入XML字符串的工作示例。

代码语言:javascript
复制
string FormatXml(string xml)
{
     try
     {
         XDocument doc = XDocument.Parse(xml);
         return doc.ToString();
     }
     catch (Exception)
     {
         // Handle and throw if fatal exception here; don't just ignore them
         return xml;
     }
 }

为简洁起见,省略了using语句

票数 348
EN

Stack Overflow用户

发布于 2017-03-16 20:40:58

对我有效的简单解决方案是:

代码语言:javascript
复制
        XmlDocument xmlDoc = new XmlDocument();
        StringWriter sw = new StringWriter();
        xmlDoc.LoadXml(rawStringXML);
        xmlDoc.Save(sw);
        String formattedXml = sw.ToString();
票数 12
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1123718

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档