Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   webservices+delphi+xml help (https://www.clubdelphi.com/foros/showthread.php?t=60169)

cirilungol 23-09-2008 15:50:52

webservices+delphi+xml help
 
Ante todo wenas.

Tengo un problema, como bien habreis visto en el titulo de este post.
Que tengo que hacer, para sacar los datos de un XML que está alojado en un servidor web.

He probado SOAP pero no encuentro por ninguna parte una forma de asignarle la URL y el XML en cuestión o el que necesite.

En el Libro de Delphi Kylix llegué a encontrar una referencia estupenda a este dilema, pero por desgracia el libro no lo tengo al alcance de mi mano y no me acuerdo lo que hice en su dia.


Saludos a Todos y pasarlo bien

jhonny 23-09-2008 16:00:17

En el blog de egostar tienes un instructivo detallado del asunto http://eliseogn.wordpress.com/2008/08/02/6/

cirilungol 23-09-2008 16:08:53

Cita:

Empezado por jhonny (Mensaje 315705)
En el blog de egostar tienes un instructivo detallado del asunto http://eliseogn.wordpress.com/2008/08/02/6/


Gracias por tu premura, pero este ejemplo es para D8, y sinceramente no me vale, aun siguiendo los pasos para D7, tengo que colar la aplicacion del WebService para D7, que es la herramienta que uso.

El problema que tengo con las SOAP esque no tengo forma de como apuntar a un xml y despues mostrar su contenido o lo que necesite de el. Recordar que este xml ha de estar en un servidor WEB.

Gracias nuevamente espero las respuestas como agua de mayo.

jhonny 23-09-2008 16:12:42

En D7 se hace igual, que como los ejemplos que ha mostrado egostar en su Blog.

egostar 23-09-2008 16:15:27

Hola

Podrias ser mas especifico en tu plantreamiento, ya tienes creado el servicio web y solo quieres recuperar el XML del Servicio Web?

Salud OS

cirilungol 23-09-2008 16:18:59

Si no me he expresado bien perdón.

Efectivamente el ejemplo es correcto, pero el ejemplo es sobre unos procedimientos. No me sirven ya que mi finalidad es llegar al XML.


El servicio web no lo tengo creado, o si lo creo llega un momento que no se donde meterle mano para poder acceder al fichero XML en cuestión alojado en un servidor web.


Gracias por las molestias

egostar 23-09-2008 16:38:43

Cita:

Empezado por cirilungol (Mensaje 315717)
Si no me he expresado bien perdón.

Efectivamente el ejemplo es correcto, pero el ejemplo es sobre unos procedimientos. No me sirven ya que mi finalidad es llegar al XML.


El servicio web no lo tengo creado, o si lo creo llega un momento que no se donde meterle mano para poder acceder al fichero XML en cuestión alojado en un servidor web.


Gracias por las molestias

Hola

Quieres decir que tu tienes archivos XML en el servidor y quieres a través de un webservice leerlos y procesar la info contenida en esos archivos?

Salud OS

jhonny 23-09-2008 16:41:15

No recuerdo si en D7 existia el "XML Data Binding", pero aporece ser que es lo que necesitas ;).

Abre un Proyecto nuevo y buscalo dentro de File|New|Others, en la pestaña XML debería estar.

cirilungol 23-09-2008 16:44:00

Cita:

Empezado por egostar (Mensaje 315723)
Hola

Quieres decir que tu tienes archivos XML en el servidor y quieres a través de un webservice leerlos y procesar la info contenida en esos archivos?

Salud OS


Esa es la idea, exacto acceder a los datos que contiene el XML alojado en un servidor Web.

Y por el tema del XML binding pues ahora lo miro asias miles

egostar 23-09-2008 16:44:24

Cita:

Empezado por jhonny (Mensaje 315725)
No recuerdo si en D7 existia el "XML Data Binding", pero aporece ser que es lo que necesitas ;).

Abre un Proyecto nuevo y buscalo dentro de File|New|Others, en la pestaña XML debería estar.

Hey amigo jhonny porque estas en estado invisible :eek:

Salud OS

Gracias por el enlace a mi blog :)

egostar 23-09-2008 16:46:08

Cita:

Empezado por cirilungol (Mensaje 315729)
Esa es la idea, exacto acceder a los datos que contiene el XML alojado en un servidor Web.

Y por el tema del XML binding pues ahora lo miro asias miles

Pues ya tienes todo para comenzar, ya una vez jhonny me enseño a usar esos data binding y son excelentes ;)

Salud OS

cirilungol 23-09-2008 19:58:05

Weno he hecho pruebas con el data binding, no me aclaro, le meto la url donde esta el xml y me genera un .pas pero no puedo hacer nada, no es lo que busco.


No se como explicarme. Quiero conectarme a un xml y leer su contenido, y como he dicho antes ese xml esta alojado en un servidor web.

Ahora como lo hago, con las SOAP he probado de todo y ya me he perdido y con las XMlBindings idem. Help me more please!!!

No puedo ni mostraros codigo porque no tengo nada, de todo lo que he hecho na de na.


Weno Saludos y sorry por el cansismo.

jhonny 23-09-2008 20:03:37

El DataBinding te genera una unidad, en ella debe haber un metodo llamado loadaddress que recibe como parametro la ruta de donde se encuentra el XML en cuestión y te retorna un TXMLNoRecuerdoQue, que es la estructura de tu XML, de esa forma ya tienes grabado en memoria el asunto y puedes manipularle ;).

cirilungol 23-09-2008 20:11:19

Machina man, Ok mañana sin falta me pongo en lo que me dices, a ver si puedo sacar algo en claro y lo posteo por aqui.

Saludos

cirilungol 23-09-2008 20:13:51

PD: Si genera una unidad... es una unidad fija con ese xml... pero y si quiero cargar otro en ejecucion?... osease como cargar otro dataset con otros datos....

:confused:

jhonny 23-09-2008 20:17:20

Cita:

Empezado por cirilungol (Mensaje 315800)
PD: Si genera una unidad... es una unidad fija con ese xml... pero y si quiero cargar otro en ejecucion?... osease como cargar otro dataset con otros datos....

:confused:

Si tiene la misma estructura debe funcionar sin problema.

cirilungol 24-09-2008 08:31:43

Testas ganando el cielo jhonny :), de todas formas el data binding no me acaba de convercer, ya que por mi desgracia, son varios los xml que me puedo encontrar.

Que podria hacer, para cargar dichos xml

http://camilovi-heroes.com/xml_datos...32_Request.xml
http://camilovi-heroes.com/xml_datos/Response.xml

Hago 2 Databindings, y en codigo les añado los diferentes xml, segun sean response o request?
Pueden ser 100 de tipo Request y otros tantos de tipo Response, pero tambien pueden haber de tipo msn.

.... esa seria la orientacion correcta y final??

Gracias

cirilungol 24-09-2008 09:08:23

Nada siento seguir dando la matraca, pero por lo menos veais lo que intento hacer, o lo que estoy haciendo con el DataBinding

parto de este xml

http://camilovi-heroes.com/gallery.xml


esto es lo que me genera el data Binding, lo solapo a un proyecto uniendo el pas creado, y busco la manera de asignarle otro gallery.xml que no es el original pero tiene la misma estructura.

encuentro esto en el pas del Data Binding

Código PHP:

Forward Decls }

  
IXMLTiltviewergalleryType = interface;
  
IXMLPhotosType = interface;
  
IXMLPhotoType = interface;

IXMLTiltviewergalleryType }

  
IXMLTiltviewergalleryType = interface(IXMLNode)
    [
'{419B47F1-8ED4-4F36-B5B7-27757DA445B7}']
    { 
Property Accessors }
    function 
Get_PhotosIXMLPhotosType;
    { 
Methods Properties }
    
property PhotosIXMLPhotosType read Get_Photos;
  
end;

IXMLPhotosType }

  
IXMLPhotosType = interface(IXMLNodeCollection)
    [
'{4915F1B3-F52E-410E-B03C-DC05C24BBA44}']
    { 
Property Accessors }
    function 
Get_Photo(IndexInteger): IXMLPhotoType;
    { 
Methods Properties }
    function 
AddIXMLPhotoType;
    function 
Insert(const IndexInteger): IXMLPhotoType;
    
property Photo[IndexInteger]: IXMLPhotoType read Get_Photo; default;
  
end;

IXMLPhotoType }

  
IXMLPhotoType = interface(IXMLNode)
    [
'{3B0E616B-38C0-4704-A2A0-4EB1EE1CF783}']
    { 
Property Accessors }
    function 
Get_ImageurlWideString;
    function 
Get_LinkurlWideString;
    function 
Get_ShowFlipButtonWideString;
    function 
Get_TitleWideString;
    function 
Get_DescriptionWideString;
    
procedure Set_Imageurl(ValueWideString);
    
procedure Set_Linkurl(ValueWideString);
    
procedure Set_ShowFlipButton(ValueWideString);
    
procedure Set_Title(ValueWideString);
    
procedure Set_Description(ValueWideString);
    { 
Methods Properties }
    
property ImageurlWideString read Get_Imageurl write Set_Imageurl;
    
property LinkurlWideString read Get_Linkurl write Set_Linkurl;
    
property ShowFlipButtonWideString read Get_ShowFlipButton write Set_ShowFlipButton;
    
property TitleWideString read Get_Title write Set_Title;
    
property DescriptionWideString read Get_Description write Set_Description;
  
end;

Forward Decls }

  
TXMLTiltviewergalleryType = class;
  
TXMLPhotosType = class;
  
TXMLPhotoType = class;

TXMLTiltviewergalleryType }

  
TXMLTiltviewergalleryType = class(TXMLNodeIXMLTiltviewergalleryType)
  protected
    { 
IXMLTiltviewergalleryType }
    function 
Get_PhotosIXMLPhotosType;
  public
    
procedure AfterConstructionoverride;
  
end;

TXMLPhotosType }

  
TXMLPhotosType = class(TXMLNodeCollectionIXMLPhotosType)
  protected
    { 
IXMLPhotosType }
    function 
Get_Photo(IndexInteger): IXMLPhotoType;
    function 
AddIXMLPhotoType;
    function 
Insert(const IndexInteger): IXMLPhotoType;
  public
    
procedure AfterConstructionoverride;
  
end;

TXMLPhotoType }

  
TXMLPhotoType = class(TXMLNodeIXMLPhotoType)
  protected
    { 
IXMLPhotoType }
    function 
Get_ImageurlWideString;
    function 
Get_LinkurlWideString;
    function 
Get_ShowFlipButtonWideString;
    function 
Get_TitleWideString;
    function 
Get_DescriptionWideString;
    
procedure Set_Imageurl(ValueWideString);
    
procedure Set_Linkurl(ValueWideString);
    
procedure Set_ShowFlipButton(ValueWideString);
    
procedure Set_Title(ValueWideString);
    
procedure Set_Description(ValueWideString);
  
end;

{ Global 
Functions }

function 
Gettiltviewergallery(DocIXMLDocument): IXMLTiltviewergalleryType;
function 
Loadtiltviewergallery(const FileNameWideString): IXMLTiltviewergalleryType;
function 
NewtiltviewergalleryIXMLTiltviewergalleryType


Pero desde la unidad Main no encuentro la funcion para poder decirle de que XMl ha de captar los datos.
Y tambien para variar recorrer ese gallery.xml y sacar todos los datos correctamente.

de veras que estoy mas perdido que un piojo en una calva.

Help please

cirilungol 24-09-2008 10:20:03

Me voy a contestar a mi mismo, asi tambien puedo empujar un poco con el tema

Código PHP:

procedure TForm1.Button1Click(SenderTObject);
var
  
ListaFotosIXMLTiltviewergalleryType;
  
INodoInteger;
begin

  ListaFotos
:= Loadtiltviewergallery(Edit1.Text);

  
with ListaFotos do begin
    
for INodo := 0 to Photos.Count -do
      
mPhoto.Lines.Add(Photos.Photo[INodo].Title);
    
//ShowMessage(intToStr(Photos.Count));

  
end;


end

Edit1.text es la ubicación donde se halla el xml cuya estrcuctura creada coincide con la del Data Binding.

Sigo haciendo pruebas de momento esto me va


La franja horaria es GMT +2. Ahora son las 08:30:10.

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