Ver Mensaje Individual
  #7  
Antiguo 09-07-2025
espinete espinete is offline
Miembro
 
Registrado: mar 2009
Posts: 662
Reputación: 18
espinete Va camino a la fama
Ok, he estado haciendo pruebas para convertir ahora de XML al objeto adecuado y tengo esta función:

Código:
function CargarRegistroAltaDesdeXML(const XMLText: string): RegistroFacturaType;
var
  XMLDoc: IXMLDocument;
  RootNode: IXMLNode;
  SOAPConv: TOPToSoapDomConvert;
  Resultado: RegistroFacturaType;
begin
  XMLDoc := TXMLDocument.Create(nil);
  try
    XMLDoc.LoadFromXML(XMLText);
    XMLDoc.Active := True;

    RootNode := XMLDoc.DocumentElement;

    SOAPConv := TOPToSoapDomConvert.Create(nil);
    try
      SOAPConv.Encoding := 'utf-8';
      SOAPConv.Options := [
        TSOAPConvertOption.soDontSendEmptyNodes,
        TSOAPConvertOption.soSendUntyped,
        TSOAPConvertOption.soTryAllSchema,
        TSOAPConvertOption.soUTF8EncodeXML
      ];

      Resultado := RegistroFacturaType.Create;
      Resultado.SOAPToObject(RootNode, RootNode, SOAPConv);

      Result := Resultado;

    finally
      SOAPConv.Free;
    end;

  finally
    XMLDoc := nil;
  end;
end;
Me estoy liando un poco con el objeto que debo usar: RegistroFacturaType, RegistroFacturacionAltaType... pero creo que con calma lo conseguiré.

Si alguien puede echarme un cable se lo agradecería, porque no sé si voy por buen camino o no. Nunca he usado los conversores estos Soap <-> XML
Responder Con Cita