Append CDATA to a string

OBL picture OBL · Apr 22, 2011 · Viewed 10.4k times · Source

My situation is that we are using contract first method for web services. I have to use CDATA to avoid special characters, which needs to be appended to our current string variable. What would be the best method to append a CDATA tag to our current string, which is returned as xml element in response object? We are using C#.

Answer

Yet Another Geek picture Yet Another Geek · Apr 22, 2011

You can use the XCData construct from the Linq-to-XML Library, which should automaticly wrap a CData tag around a string.

Example code:

//Assuming your string is called @string
XCData cdata = new XCData(@string);
//CData string
string cdataString = cdata.ToString();

If you do not have access to XLinq constructs you could just do the following

private string WrapInCData(string @string)
{
   return "<![CData[" + @string + "]]>";
}