2012-08-08 66 views
0

我想保存在一個XML文件中的以下字符串:保存字符串到XML文件

<text><![CDATA[<p>what is my pet name</p>]]></text> 

當我保存它,它看起來像:

<text>&lt;![CDATA[&lt;p&gt;what is my pet name&lt;/p&gt;]]&gt;</text> 

我已經試過File.WriteAllText()XmlDocument.Save()方法,但沒有得到適當的迴應。

基本上除了在XML中打開和關閉標籤以外,<被替換爲&lt;>被替換爲&gt;

+2

請發表您使用寫入文件的代碼。 – Oded 2012-08-08 20:10:57

+1

請顯示導致上述輸出的代碼。 – Sebastian 2012-08-08 20:11:10

回答

2

發生什麼事是XML解析器正在對您的字符串進行編碼。當您稍後嘗試訪問字符串時,可以在當時再次解碼。

我的建議是,您要麼嘗試將文本加載到XmlDocument.LoadXml(string s)的新「XmlDocument」中,然後將其導入到當前文檔中,或將其保留爲編碼。

您不應該嘗試同時使用XML解析器和手動添加文本。

0

XML正在被正確寫入。

XML具有爲命令保留的特殊字符,就像C#保留諸如「if」和「string」之類的詞一樣。

XML正在對您的字符串進行編碼以進行存儲。你需要做的是當你檢索你的字符串時,通過類似的解碼過程來運行它。

使用此:HttpServerUtility.HtmlDecode(encodedString)

參考: Decode XML returned by a webservice (<and> are replaced with &lt; and &gt)?