error CAML Query containing special characters


If you are building a CAML Query to match a value which contains a special character like & (say SharePoint&InfoPath), you will receive an error and query will fail.

Resolution - Handle this the way you handle special characters in XML. Include your value within < ![CDATA[ value ]] >. Incorrect (throws error) -

<Eq><FieldRef Name="Title" /><Value Type="Text">SharePoint&InfoPath</Value></Eq>

Correct -

<Value Type="Text"><![CDATA[SharePoint&InfoPath]]></Value></Eq>

In real scenarios, build your CAML Query by appending the value in the query, like –

‘<Eq><FieldRef Name="Title" /><Value Type="Text"><![CDATA[‘ + value + ‘]]> </Value></Eq>’ [where value = text to be matched]