Xml – way to escape a CDATA end token in xml


I was wondering if there is any way to escape a CDATA end token (]]>) within a CDATA section in an xml document. Or, more generally, if there is some escape sequence for using within a CDATA (but if it exists, I guess it'd probably only make sense to escape begin or end tokens, anyway).

Basically, can you have a begin or end token embedded in a CDATA and tell the parser not to interpret it but to treat it as just another character sequence.

Probably, you should just refactor your xml structure or your code if you find yourself trying to do that, but even though I've been working with xml on a daily basis for the last 3 years or so and I have never had this problem, I was wondering if it was possible. Just out of curiosity.


Other than using html encoding…

Best Solution

You have to break your data into pieces to conceal the ]]>.

Here's the whole thing:


The first <![CDATA[]]]]> has the ]]. The second <![CDATA[>]]> has the >.