繁体   English   中英

XML CDATA编码

[英]XML CDATA Encoding

我正在尝试使用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);
    }
}

使用XmlDocument

    XmlDocument doc = new XmlDocument();
    XmlElement email = (XmlElement)doc.AppendChild(doc.CreateElement("email"));
    email.AppendChild(doc.CreateCDataSection("test@test.com"));
    string xml = doc.OuterXml;

或使用XElement

    XElement email = new XElement("email", new XCData("test@test.com"));
    string xml = email.ToString();

有关如何在XML文档中创建CDATA节点的信息和示例,请参见XmlDocument :: CreateCDataSection方法

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM