Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Lectura XML con childs (https://www.clubdelphi.com/foros/showthread.php?t=89269)

mRoman 26-10-2015 23:42:59

Lectura XML con childs
 
1 Archivos Adjunto(s)
Hola buenas tardes amigos.

Estoy tratando de leer archivos XML el cual adjunto. Dicho archivo tiene childs. Les comento que estoy buscandole como hacerle para leerlo. He usando el XML Mapper y he seguido estas instrucciones, pero no sé como leer el detalle del archivo. Dicho archivo es el detalle de una factura.

Espero me puedan orientar el como hacerle para leer el detalle. Lo anterior es para cargar estos datos a un sistema y compararlos con los pedidos que nuestros clientes hayan hecho y comprobar si se les facturó su pedido completo o bien les facturaron otra cosa que no pidieron, en fin de la lectura de estos archivos pueden resultar otras cosas interesantes, como por ejemplo que productos se facturan mas, etc.

Saludos

Neftali [Germán.Estévez] 27-10-2015 10:26:16

El XML Mapper que viene con Delphi no siempre funciona (por experiencia te lo digo) y en este caso, al menos a mi, con la versión de delphi que lo he probado me falla.
Supongo que debido a la complejidad del fichero.

En este caso, te queda realizar el "parse" de manera manual. Es decir, hacer el trabajo que haría el XML Mapper de forma automática.

Para ello busca entrada en el clubdelphi, XMLDocument y IXMLNode. varás que hay ejemplos de cómo recorrer estos ficheros e ir extrayendo los datos.

Es posible que este código de David o las units de Al González te puedan ayudar.

mRoman 27-10-2015 19:49:40

Ok...Neftali....gracias por tu tiempo.

Consultaré los LINKS q me pusiste. Luego les contaré que pasó

Gracias

Al González 28-10-2015 00:06:09

Cita:

Empezado por Neftali (Mensaje 498415)

Muchas gracias por la parte que me toca, Germán. Me he tardado un poco en subir la siguiente liberación, pero así de voluminosas han sido las mejoras que he venido agregando a GH Freebrary. La estoy usando como base en un proyecto muy importante, con XE7, y le he metido un montón de material nuevo. A veces me pierdo un poco en el entramado, pero cuando veo las cosas funcionando me vuelve la alegría por saber que estoy construyendo algo bueno con mi hermoso Pascal. :-)

Neftali [Germán.Estévez] 28-10-2015 10:07:39

Cita:

Empezado por Al González (Mensaje 498460)
Me he tardado un poco en subir la siguiente liberación, pero así de voluminosas han sido las mejoras que he venido agregando a GH Freebrary.

Hola Al.
Tal vez tú podrías concretarle un poco más en las units de GH Freebrary donde debe mirar o que puede probar.
Yo a ese nivel de detalle no he sabido llegar.

dec 28-10-2015 14:29:53

Hola,

Yo uso la biblioteca OmniXml con buenos resultados. Cuenta con la posibilidad de "buscar" en el XML usando "XPATH". Necesita de cierto aprendizaje, pero, es realmente rápida y efectiva:

https://code.google.com/p/omnixml/

Al González 28-10-2015 18:13:18

Hola mRoman.

¿Qué versión de Delphi estás utilizando? Mira si te pueden servir estos ejemplos de Delphi 7 y XE2:

http://terawiki.clubdelphi.com/Delph...H_Freebrary__/

(Archivos TghXMLDoc_EjemploLectura.zip, TghXMLDoc_EjemploLectura2.zip y TghXMLDoc_EjemploLectura3.zip).

Agrego que TghXMLDoc soporta la sintaxis XPath. Es una clase Delphi que envuelve a MSXML, la biblioteca nativa de Windows encargada de hacer el trabajo sucio.

Saludos. :)

dec 28-10-2015 18:26:39

Hola,

Es muy interesante Al, sobre todo porque OmniXml no parece muy actualizada que digamos, aunque funciona bastante bien, al menos en mi proyecto. Pero tus bibliotecas podrían ser una muy buena alternativa, acaso más actualizada además. Me costaría trabajo cambiar OmniXml en mi proyecto actual (se usa profusamente para varios aspectos, desde guardar la configuración hasta para guardar los propios archivos "de proyecto" de las aplicaciones que mi proyecto crea), sin embargo, digo, no creas que no me importaría intentarlo.

¿Es posible con tu biblioteca "serializar" y "deserializar" un objeto a y desde XML, tal como OmniXml hace? Es una de las razones que me llevó a elegir OmniXml (tampoco sabía que tu biblioteca trabaja con archivos XML) además del soporte para XPath, puesto que se hace más o menos sencillo leer archivos XML usando XPath. Sea como sea, tu biblioteca sigue siendo una buena alternativa para el compañero autor de este hilo.

Al González 28-10-2015 23:41:10

Cita:

Empezado por dec (Mensaje 498501)
¿Es posible con tu biblioteca "serializar" y "deserializar" un objeto a y desde XML, tal como OmniXml hace?

No conozco OmniXML, David, aunque he escuchado sólo cosas buenas de ese producto. Añadir aspectos de serialización en GHF está en la ruta, aunque todavía nada concreto. Suena interesante esa característica, y como siempre estoy abierto a escuchar ideas.

Un saludo. :)

mRoman 18-11-2015 05:30:02

Ok...
 
Cita:

Empezado por Al González (Mensaje 498498)
Hola mRoman.

¿Qué versión de Delphi estás utilizando? Mira si te pueden servir estos ejemplos de Delphi 7 y XE2:

http://terawiki.clubdelphi.com/Delph...H_Freebrary__/

(Archivos TghXMLDoc_EjemploLectura.zip, TghXMLDoc_EjemploLectura2.zip y TghXMLDoc_EjemploLectura3.zip).

Agrego que TghXMLDoc soporta la sintaxis XPath. Es una clase Delphi que envuelve a MSXML, la biblioteca nativa de Windows encargada de hacer el trabajo sucio.

Saludos. :)

Tu crees que esto se pueda aplicar para Delphi 6, ya q esta version es la q manejo.


La franja horaria es GMT +2. Ahora son las 18:35:15.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi