2011-06-20 69 views
1

我知道使用CreateCDataSection来生成一个CDATA节点。但是,有没有办法将CDATA字符串插入到我的原始字符串中?而不是让整个节点被CDATA标签包围。以下是我的代码。请指教,谢谢。XML CDATA编码

var detail = new StringBuilder(); 
detail.AppendFormat("<![CDATA[<br />]]>another line: {0}", foo1); 
detail.AppendFormat("<![CDATA[<br />]]>another line: {0}", foo2); 
detail.AppendFormat("<![CDATA[<br />]]>another line: {0}", foo3); 

var xmlOutput = new XElement("Detail",detail); 
+0

你能详细解释一下这个问题吗? –

回答

0

相反CDATA的,使用&lt;为 '<'。

detail.AppendFormat("&lt;br />another line: {0}", foo1); 
detail.AppendFormat("&lt;br />another line: {0}", foo2); 
detail.AppendFormat("&lt;br />another line: {0}", foo3); 

var xmlOutput = new XElement("Detail", detail); 
+0

我需要在CDATA中附上
,以便它可以与我的程序交互使用的API。 – Stan

0

你在找这个。

 var br = new XCData("<br />"); 
     detail.AppendFormat("{0}another line: {1}", br, foo1); 
     detail.AppendFormat("{0}another line: {1}", br, foo2); 
     detail.AppendFormat("{0}another line: {1}", br, foo3);    
     var xmlOutput = new XElement("Detail", detail); 
+0

这没有奏效。它和我的代码一样。 – Stan