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.