Pasar Xml a Dbf

1,324 views
Skip to first unread message

Jaime (Gmail)

unread,
Jul 18, 2013, 9:58:47 AM7/18/13
to publice...@googlegroups.com

Amigos un favor, como puedo importar un archivo Xml a dbf por medio de código no por herramientas que hay en el internet.

 

Muchas Gracias de antemano.

 

Jaime Paredes

Pablo Daniel Lissa

unread,
Jul 18, 2013, 10:54:45 AM7/18/13
to publice...@googlegroups.com
Hola:

Revisa el uso de la función XMLTOCURSOR(cXML, cNombreCursorOTabla).

Douglas Sánchez

unread,
Jul 18, 2013, 11:04:40 AM7/18/13
to publice...@googlegroups.com
hola al rato esto te sirve.

XMLTOCURSOR(archivo.xml, "TmpFactura")


Saludes

Douglas
--
Ing. Douglas Sánchez Guillén
      Consultor Informatico
Claro: 505 88495476

Juan de Dios Corrales Leal

unread,
Jul 18, 2013, 12:14:45 PM7/18/13
to publice...@googlegroups.com
Tendrias que hacerle un "Parse" manual, eso suponiendo que los XML tengan "cierta" estructura ya conocida... para esto te puedes apoyar en la funcion STREXTRACT, la cual es muy buena para eso.

Suponiendo (solo como un ejemplo) que tengas tu XML mas o menos asi:

<xml version bla bla bla bla>
<registro>
   <nombre>un nombre</nombre>
   <direccion>una direccion</direccion>
</registro>
<registro>
   <nombre>otro nombre</nombre>
   <direccion>otra direccion</direccion>
</registro>

Una forma de "Parsear" esto seria mas o menos asi:

el_xml=FileToStr("El_Archivo_Con_XML_del_ejemplo.XML")
Create Cursor Tmp (nombre c(50), direccion c(50))
cuantosregistros=occurs(el_xml,"<registro>")
i=0
for i=1 to cuantosregistros
   contenido_registro=StrExtract(el_xml,"<registro>","</registro>",i)
   contenido_nombre=StrExtract(contenido_registro,"<nombre>","</nombre>",1)
   contenido_direccion=StrExtract(contenido_registro,"<direccion>","</direccion>",1)
   select tmp
   append blank
   replace nombre with contenido_nombre
   replace direccion with contenido_direccion
endfor

select tmp
browse normal
close databases all
return

No es la solucion perfecta, pero es mas o menos lo que tienes que hacer si lo quieres hacer de forma manual.

Saludos.

Jaime (Gmail)

unread,
Jul 22, 2013, 3:22:34 PM7/22/13
to publice...@googlegroups.com

Gracias mi hermano… lo pondre en prueba

Reply all
Reply to author
Forward
0 new messages