Amiguinho,
Fiz algumas correções e formatei o código para que voce entenda com e quando usar cada motor.
Voce só deve acionar o Microsoft.XMLDOM se for manipular um arquivo .XML, ou seja, incluir nós, tags, valores e obter trechos e valores.
O Microsoft.ServerXMLHTTP serve para a comunicação básica de arquivos texto, XML, etc.
*--
* para compilar hbmk2 web -lxhb -lhbwin -lhbct -lhbwin -lhbtip -es2 -b
*---
function main()
local cResponseText, objXMLHTTP
local sconteudo := ''
cWebService := "http://generali.averbweb.net.br/Webservice/soapserver"
sconteudo := faz_xml()
objXMLHTTP := TOleAuto():New( "MSXML2.ServerXMLHTTP" )
// Aponta para o Web Service
objXMLHTTP:open( "POST", cWebService, .F. )
// Envia o documento XML para o Web Service
objXMLHTTP:send( sconteudo )
// Aqui e carregado o retorno do Web Service.
cResponseText := objXMLHTTP:responseText // XML:xml
// Apresenta a resposta
MemoEdit( cResponseText )
// Ativa objeto DOM
oXMLDoc := TOLEAUTO():New("Microsoft.XMLDOM")
root := oXMLDoc:documentElement
// Habilita leitura completa do documento
oXMLDoc:async := .f.
// Verifica o sucesso restorno
lSuccess := oXMLDoc:loadXML( cResponseText )
?oXMLDoc:XML
RespText := ""
If lSuccess
// Primeira forma de pegar um conteudo
cResposta := oXMLDoc:getElementsByTagName( "login" ):Item(0):Text
? cResposta
// Segunda forma de pegar um conteudo
FaulStringDetails := oXMLDoc:selectNodes("//login")
cResposta := FaulStringDetails:Item(0):Text
? cResposta
// Trecho para ler o conteudo de um no com varias
//x := oXMLDoc:getElementsByTagName( "sacado" )
//? oXMLDoc:getElementsByTagName( "nome" ):Item(0):Text , ;
// oXMLDoc:getElementsByTagName( "email" ):Item(0):Text
// Exemplo para ler sequencialmente um conjunto identico de nos e tags
//x := oXMLDoc:getElementsByTagName( "cobranca" )
//for i = 1 to x:length
// ? oXMLDoc:getElementsByTagName( "nome" ):Item(i-1):Text , ;
// oXMLDoc:getElementsByTagName( "email" ):Item(i-1):Text , ;
// oXMLDoc:getElementsByTagName( "status" ):Item(i-1):Text
//next
EndIf
return .t.
*--------------------
function faz_xml()
sconteudo:='<soapenv:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="urn:xmethods-delayed-quotes">'
sconteudo+=' <soapenv:Header/>'
sconteudo+=' <soapenv:Body>'
sconteudo+=' <urn:adicionarAverbacao soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">'
sconteudo+=' <args>'
sconteudo+=' <usuario>SEU_LOGIN</usuario>'
sconteudo+=' <senha>SUA_SENHA</senha>'
sconteudo+=' <emit_nome>EMITENTE</emit_nome>'
sconteudo+=' <emit_cnpj>53.561.748/0001-20</emit_cnpj>'
sconteudo+=' <emit_cidade>Cotia</emit_cidade>'
sconteudo+=' <emit_uf>SP</emit_uf>'
sconteudo+=' <tipo_documento>CTE</tipo_documento>'
sconteudo+=' <num_documento>1</num_documento>'
sconteudo+=' <serie_documento>1</serie_documento>'
sconteudo+=' <data_emissao>27/09/2013</data_emissao>'
sconteudo+=' <tipo_mercadoria>ARROZ</tipo_mercadoria>'
sconteudo+=' <tipo_embarque>RODOVIARIO</tipo_embarque>'
sconteudo+=' <valor_mercadoria>1.200,00</valor_mercadoria>'
sconteudo+=' <placa>AAA1234</placa>'
sconteudo+=' <remet_nome>EMITENTE</remet_nome>'
sconteudo+=' <remet_cnpj>53.561.748/0001-20</remet_cnpj>'
sconteudo+=' <remet_cidade>Cotia</remet_cidade>'
sconteudo+=' <remet_uf>SP</remet_uf>'
sconteudo+=' <dest_nome>EMITENTE</dest_nome>'
sconteudo+=' <dest_cnpj>53.561.748/0001-20</dest_cnpj>'
sconteudo+=' <dest_cidade>Cotia</dest_cidade>'
sconteudo+=' <dest_uf>SP</dest_uf>'
sconteudo+=' <consig_nome>CONSIGNATÁRIO</consig_nome>'
sconteudo+=' <consig_cnpj>53.561.748/0001-20</consig_cnpj>'
sconteudo+=' <consig_cidade>Cotia</consig_cidade>'
sconteudo+=' <consig_uf>SP</consig_uf>'
sconteudo+=' </args>'
sconteudo+=' </urn:adicionarAverbacao>'
sconteudo+=' </soapenv:Body>'
sconteudo+='</soapenv:Envelope>'
return sconteudo