2009-02-12 81 views
2

如果我構建一些XML並使用<![CDATA[...]]>,如何編碼可能包含]]>子串的數據?它會是]]&gt;?我問,因爲我一直認爲CDATA內容是文字內容。encode]]>在cdata中

+0

重複http://stackoverflow.com/questions/538163/how-do-i-write-the-字面內-A-CDATA段與-IT-結束,該節 – tehvan 2009-02-12 06:48:35

回答

-2

不該實體合作?

是這樣的:& 93; & 93; &gt;

,或者只是其中之一:] &gt;

93是latin1的,你如果UTF-8發送數據,需要統一的實體。

作爲一個旁註,還有其他字符在CDATA塊中也是不允許的,以及一些奇怪的引用和控制流字符。

-1

從某種意義上說,CDATA是文字內容,但當然必須有某種方法來標記CDATA塊的結尾,而且您選擇的任何內容都必須以某種方式在您的字符串中表示。

當我不得不處理另一個CDATA區塊中包含CDATA的XML文檔時,您似乎必須這樣做,於是我放棄並將整個代碼編碼爲Base64。另一方然後提取文本並對其進行解碼。

Base64非常方便,因爲它具有常見的支持和/或簡單的算法,可以在許多語言中對ASCII字符串進行編碼和解碼,在我的情況下,在ASP.NET應用程序中使用C#和Javascript。

2

你可以只使用兩個CDATA標籤,第一個包含]和第二個包含>