Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Internet (https://www.clubdelphi.com/foros/forumdisplay.php?f=3)
-   -   XML desde Internet (https://www.clubdelphi.com/foros/showthread.php?t=83169)

webmasterplc 18-05-2013 07:02:35

XML desde Internet
 
Buenas, estoy hgob.veaciendo una aplicación para consultar datos en la pagina www.seniat.gob.ve, la cual se le pasan los parametros metodo get y devuelve un xml, ya lo tengo en un string el siguiente xml
Cita:

<?xml version="1.0" encoding="ISO-8859-1"?>
<rif:Rif xmlns:rif="rif" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" rif:numeroRif="V148276192"><rif:Nombre>BERTHGENIS SAMUEL DELGADO</rif:Nombre><rif:AgenteRetencionIVA>NO</rif:AgenteRetencionIVA><rif:ContribuyenteIVA>SI</rif:ContribuyenteIVA><rif:Tasa /></rif:Rif>
Alguien me puede orientar cmo manipular los datos y pasarlos a variables diferentes

ecfisa 18-05-2013 10:43:45

Hola webmasterplc.

Si cadena xml ya está almacenada en una variable de tipo string y no teniendo mas datos en que basarme que la misma cadena que mostras, sólo se me ocurre esto...

En el ejemplo se obtienen los cuatro primeros datos:
Código:

...
implementation

uses StrUtils;

procedure PasarDatos(const XMLStr: string; SL: TStrings);
const
  DESDE : array[1..4] of string = ('rif:numeroRif="', '<rif:Nombre>',
    'rif:AgenteRetencionIVA>', '<rif:ContribuyenteIVA>');
  HASTA : array[1..4] of string = ('">', '<' ,'<' , '<');
var
  i, p1, p2 : Integer;
begin
  for i:= 1 to 4 do
  begin
    p1 := Pos(DESDE[i], XMLStr) + Length(DESDE[i]);
    p2 := PosEx(HASTA[i], XMLStr, p1);
    SL.Add(Copy(XMLStr, p1, p2-p1));
  end;
end;

// Ejemplo de llamada:
procedure TForm1.Button1Click(Sender: TObject);
var
  XMLResult : string;
begin
  XMLResult := Obtener_CadenaXML_Desde_SENIAT; 
  PasarDatos(XMLResult,ListBox1.Items);
end;

Donde Obtener_CadenaXML_Desde_SENIAT sería tu función encargada de obtener la cadena XML; la cuál comentas que ya tenes funcionado.

Saludos. :)

Edito: Tuve que cambiar las etiquetas [delphi] [/delphi] por que con estas se perdían algunos contenidos de las constantes de cadena.

webmasterplc 18-05-2013 16:26:47

Hermano gracias Funciona perfecto


La franja horaria es GMT +2. Ahora son las 10:46:41.

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