Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #6  
Antiguo 22-04-2019
bucanero bucanero is offline
Miembro
 
Registrado: nov 2013
Ubicación: Almería, España
Posts: 208
Poder: 11
bucanero Va camino a la fama
Hola IVAND

En tu ejemplo en particular, dentro del campo comprobante lo que va incluido es otro XML codificado, por lo tanto lo que debes de hacer es crear un segundo componente de tipo XMLDocument y asignarle el valor descodificado de ese XML.

Para descodificar puedes utilizar la funcion HTMLDecode de la unidad HTTPApp

Aquí te pongo un ejemplo:

Código Delphi [-]
uses HTTPApp;


function TForm2.LoadComprobante(const AXMLComprobante: String): Boolean;
var
  factura, InfoTributaria, InfoFactura: IXMLNode;
  NName:String;
begin
  Result := False;
  try
    // se asigna el contenido del XML
    XMLDocument2.XML.Text := AXMLComprobante;
    XMLDocument2.Active := True;
    try
      factura := XMLDocument2.DocumentElement;

      InfoTributaria := factura.ChildNodes['infoTributaria'];
      Memo1.Lines.add(InfoTributaria.ChildValues['tipoEmision']);
      Memo1.Lines.add(InfoTributaria.ChildValues['razonSocial']);
      Memo1.Lines.add(InfoTributaria.ChildValues['nombreComercial']);

      InfoFactura := factura.ChildNodes['InfoFactura'];

      // ....
      result := true;
    finally
      XMLDocument2.Active := False;
    end;
  except
    on E: Exception do
      MessageDlg(E.message, mtError, [mbOK], 0);
  end;
end;

procedure TForm2.Button1Click(Sender: TObject);
var
  Autorizacion: IXMLNode;
begin
  XMLDocument1.FileName := OpenDialog1.FileName;
  XMLDocument1.Active := True;
  try
    Autorizacion := XMLDocument1.DocumentElement;

    Memo1.Lines.add(Autorizacion.ChildNodes['estado'].Text);
    Memo1.Lines.add(Autorizacion.ChildNodes['numeroAutorizacion'].Text);
    Memo1.Lines.add(Autorizacion.ChildNodes['fechaAutorizacion'].Text);
    Memo1.Lines.add(Autorizacion.ChildNodes['ambiente'].Text);
    LoadComprobante(HTMLDecode(Autorizacion.ChildNodes['comprobante'].Text));
  finally
    XMLDocument1.Active := False;
  end;
end;
Responder Con Cita
 



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Encriptacion y firmado electronico Willo Varios 1 12-05-2010 19:17:40
Un péndulo de Foucault situado en el ecuador no rota marcoszorrilla La Taberna 4 15-12-2008 11:54:26
Ecuador migra a software libre y estándares abiertos. Casimiro Notevi La Taberna 0 11-04-2008 22:40:22
Otro país que pasa a Linux su administración: Ecuador Casimiro Notevi Noticias 1 05-02-2007 17:09:05
Leer usb trex2000 Varios 1 14-03-2005 12:51:41


La franja horaria es GMT +2. Ahora son las 02:13:45.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi