使用CDATA節點,就像這樣:
class Program {
static void Main(string[] args) {
XmlDocument d = new XmlDocument();
XmlNode root = d.CreateNode(XmlNodeType.Element, "root", null);
d.AppendChild(root);
XmlNode cdata = d.CreateNode(XmlNodeType.CDATA, "cdata", null);
cdata.InnerText = "some <b>bolded</b> text";
root.AppendChild(cdata);
PrintDocument(d);
}
private static void PrintDocument(XmlDocument d) {
StringWriter sw = new StringWriter();
XmlTextWriter textWriter = new XmlTextWriter(sw);
d.WriteTo(textWriter);
Console.WriteLine(sw.GetStringBuilder().ToString());
}
}
這將打印
<root><![CDATA[some <b>bolded</b> text]]></root>
CDATA部分看起來很醜陋,但這是好事W使您插入文本,而不必轉義字符...
否則,你可以使用一個節點的InnerXml屬性:
static void Main(string[] args) {
XmlDocument d = new XmlDocument();
XmlNode root = d.CreateNode(XmlNodeType.Element, "root", null);
d.AppendChild(root);
XmlNode cdata = d.CreateNode(XmlNodeType.Element, "cdata", null);
cdata.InnerXml = "some <b>bolded</b> text";
root.AppendChild(cdata);
PrintDocument(d);
}
這將打印
<root><cdata>some <b>bolded</b> text</cdata></root>
但要注意,當你反序列化它,因爲「cdata」節點的內容現在實際上是三個節點。
你使用什麼模型? XmlDocument的?的XDocument?什麼? – 2009-06-04 07:48:47
(回覆評論) – 2009-06-04 08:00:58
爲什麼你不想編碼? – AnthonyWJones 2009-06-04 08:01:40