Don't use your web methods to return strings as most programmers do, use them to return true XMLs.
instead of using this:
[WebMethod]
public string MyLameWebMethod()
{
XmlDocument dom = new XmlDocument();
// load XML Data ...
return dom.OuterXml;
}
Now when we want to read it on the client side we want the XML and then the operation is:
XML -> String -> XML
Use this:
[WebMethod]
public XmlDocument MyBetterWebMethod()
{
XmlDocument dom = new XmlDocument();
// load some XML ...
return dom;
}
Here we are skipping over the String step and using much more valid XML document.
Now you are avoiding an added level of transferring your XML document to string and then back to XML.