The SOAP interface provides functionality very similar to the "XML
output" search interface. So why use one as opposed to the other?
Use SOAP if the language you are writing has a SOAP interface
available for you. Many languages and environments (including Visual
Studio) provide SOAP tools, where you provide the WSDL to the
webservice, and it will generate "wrapper" classes for you, allowing
you to interact with the Search Appliance as if it were simply a local
function.
If whatever development environment you're using doesn't have a real
SOAP interface, then use the XML API instead of the SOAP API. All the
added information/rules of SOAP that make it easy for programs to
exchange data will instead make it more cumbersome to use manually.