我正在尝试使用 CDATA 在 C# 中构建 XML 文档,以将文本保存在元素中。例如..
<email>
<![CDATA[test@test.com]]>
</email>
但是,当我获得文档的 InnerXml 属性时,CDATA 已重新格式化,因此 InnerXml 字符串如下所示,但失败了。
<email>
<![CDATA[test@test.com]]>
</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 方法