Jump to content


Photo

Extraer un Binary de un XML


  • Please log in to reply
7 replies to this topic

#1 Volkhavaar

Volkhavaar

    Newbie

  • Miembros
  • Pip
  • 3 posts

Posted 28 May 2013 - 03:47 PM

Saludos

Me encuentro con una problemática al estar consumiendo un WebService, en uno de sus nodos, me envían un dato binario para que yo lo reciba en un arreglo TByteDynArray usando Delphi 6

Almaceno el XML de respuesta en un objeto IXMLDomDocument, dentro de una función que recibe como parámetro el tag del nodo como una cadena, almacenando el nodo en un objeto IXMLDOMNode

Mi interés consiste en como extraer el dato de ese nodo para almacenarlo en mi arreglo de Bytes

Alguien puede apoyarme con esto?

Saludos!
  • 0

#2 poliburro

poliburro

    Advanced Member

  • Administrador
  • 4945 posts
  • LocationMéxico

Posted 28 May 2013 - 04:35 PM


Alguien puede apoyarme con esto?

Saludos!


El amigo egostar es el experto del foro en webservices. Seguro pronto responde...
  • 0

#3 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14469 posts
  • LocationMéxico

Posted 28 May 2013 - 04:49 PM

Hola

El dato recibido lo quieres insertar en una variable de tipo TByteDynArray?

o

Un TByteDynArray lo quieres insertar en otro tipo de variable ?

Saludos


  • 0

#4 Volkhavaar

Volkhavaar

    Newbie

  • Miembros
  • Pip
  • 3 posts

Posted 28 May 2013 - 05:40 PM

Quiero insertarlo en una variable del tipo TByteDynArray

Actualmente recupero los valores de los nodos en cadenas string, pero en este caso me mandan un binario para convertirlo PDF posteriormente.

Actualmente mi función es



delphi
  1. function TTraspasoAfore.ExtractCoordinates(const AResponse: ANSIString; nodename : String): String;
  2. var
  3.   dom : IXMLDomDocument;
  4.   node: IXMLDOMNode;
  5. begin
  6.   dom := CoDOMDocument.Create();
  7.   dom.loadXML(WideString(AResponse));
  8.  
  9.   node := dom.selectSingleNode('//'+nodename);
  10.  
  11.   if (node <> nil) then
  12.     Result := GetNodeText(node)
  13.   else
  14.     Result := '';
  15. end;



Y mi intensión es hacer una variante de la misma, con la cual pueda extraer el valor para, como te respondía, almacenarlo en un arreglo TByteDynArray

De antemano gracias por tu atención


  • 0

#5 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14469 posts
  • LocationMéxico

Posted 29 May 2013 - 12:00 AM

Hola,

Encontré el código para pasar un string a TByteDynArray, no recuerdo de donde lo obtuve, ya hace tiempo que lo usé.



delphi
  1. uses
  2.   Types;
  3.  
  4. var
  5.   ArregloDeBytes: TByteDynArray;
  6.  
  7. function StringToByteArray(const cadena: AnsiString): TByteDynArray;
  8. begin
  9.   SetLength(Result, Length(cadena));
  10.   Move(cadena[1], Result[0], Length(cadena));
  11. end;
  12.  
  13. procedure TForm1.Button1Click(Sender: TObject);
  14. begin
  15.   ArregloDeBytes := StringToByteArray('Prueba de String a TByteDynArray');
  16. end;



Saludos
  • 0

#6 Volkhavaar

Volkhavaar

    Newbie

  • Miembros
  • Pip
  • 3 posts

Posted 29 May 2013 - 03:10 PM

Me ha funcionado muy bien, te agradezco muy sinceramente tu tiempo

Saludos!
  • 0

#7 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14469 posts
  • LocationMéxico

Posted 29 May 2013 - 03:14 PM

Que bien Volkhavaar,

Asignamos éste hilo como resuelto. (y)

Saludos
  • 0

#8 poliburro

poliburro

    Advanced Member

  • Administrador
  • 4945 posts
  • LocationMéxico

Posted 29 May 2013 - 03:42 PM

Me ha funcionado muy bien, te agradezco muy sinceramente tu tiempo

Saludos!


Un maestrazo en webservices nuestro amigo egostar verdad? :D

Saludos
  • 0




IP.Board spam blocked by CleanTalk.