c# – XML CDATA编码

我正在尝试使用CDATA在C#中构建XML文档以将文本保存在元素中.例如..

<email>
<![CDATA[test@test.com]]>
</email>

但是,当我获得文档的InnerXml属性时,CDATA已经重新格式化,因此InnerXml字符串看起来像下面的失败.

<email>
&lt;![CDATA[test@test.com]]&gt;
</email>

如何在访问XML字符串时保留原始格式?

干杯

最佳答案
不要使用InnerText:使用XmlDocument.CreateCDataSection

using System;
using System.Xml;

public class Test
{
    static void Main()
    {
        XmlDocument doc = new XmlDocument();
        XmlElement root = doc.CreateElement("root");
        XmlElement email = doc.CreateElement("email");
        XmlNode cdata = doc.CreateCDataSection("test@test.com");

        doc.AppendChild(root);
        root.AppendChild(email);
        email.AppendChild(cdata);

        Console.WriteLine(doc.InnerXml);
    }
}

转载注明原文:c# – XML CDATA编码 - 代码日志