I presume this is a web service and using C++ as a mod extenstions to a web server rather than writing your own.
To speed up transfer you could be able to enable gzip compression on the web server, this is relatively straight forward in all modern web servers.
Parsing could be sped up by:
- Reducing node count - can the data being set be reduced, can some be inferred from others?
- If you are using a DTD/XSD, have a local copy and resolve to this rather than necessarily always pulling it from the public location. I have seen an XML library pull it from the public location each time which slowed down parsing considerably.