|
Página 1 de 1
|
Descargar Xml Y Leerlo Con Xmlread
Autor |
Mensaje |
mato
Usuario
Registrado: Agosto 2010
Mensajes: 8
Edad: 42
|
Descargar Xml Y Leerlo Con Xmlread
Hola gente! Soy completamente nuevo en gambas, y tengo la programacion como hobby (vengo de otras ciencia...)
Estoy tratando de bajar un xml de un sitio de internet, y "parsearlo"
Obtenerlo es sencillo, con el siguiente código lo logro (queda almacenado en una variable llamada buffer):
El problema es que no se como pasar esa variable a un objeto xmlread para poder tratarla como un archivo xml y obtener la información que necesito...
Alguna solución?
Gracias!
Mato.-
última edición por mato el Jueves, 05 Agosto 2010, 00:06; editado 1 vez
|
#1 Miercoles, 04 Agosto 2010, 16:42 |
|
|
fabianfv
Analista Programador
Registrado: Octobre 2009
Mensajes: 495
Edad: 50 Ubicación:
|
Re: Descargar Xml Y Leerlo Con Xmlread
Lo que sin dudas te puede ayudar mucho es leer el capítulo 7: XML, del libro "Programación visual con software libre", disponible en la sección de descargas.
=================== Cómo programar con Gambas
Speed Books: informática libre.
|
#2 Miercoles, 04 Agosto 2010, 18:49 |
|
|
mato
Usuario
Registrado: Agosto 2010
Mensajes: 8
Edad: 42
|
Re: Descargar Xml Y Leerlo Con Xmlread
Gracias por responder!
El capitulo que mencionas lo lei. El inconveniente no es analizar el xml, sino como meter el xml descargado en el código que pegué, en un xml.read (por ejemplo) para poder, justamente utilizar los métodos correspondientes.
Si el xml lo leo de un archivo del disco, no hay drama. La sintaxis para abrirlo es xml.Open(User.Home & "/ejemplo.xml")
Ahora, lo que no se es como indicarle que en vez de abrirlo de un archivo lea el que tengo en la variable "buffer".
Saludos!
|
#3 Miercoles, 04 Agosto 2010, 19:10 |
|
|
abarzuaf
Ingeniero Programador
Registrado: Octobre 2009
Mensajes: 265
Edad: 54 Ubicación:
|
Re: Descargar Xml Y Leerlo Con Xmlread
Hola.
Puedes redireccionar lo que almacenaste en la variable Buffer a un archivo en tu directorio de usuario y luego leerlo con xml.read,etc.
Te dejo este link en donde muestran como leer un xml.
http://furikao-gnulinux.blogspot.co...-de-un-xml.html
Saludos
|
#4 Miercoles, 04 Agosto 2010, 21:02 |
|
|
Ayortano
|
Re: Descargar Xml Y Leerlo Con Xmlread
Puedes hacer lo que dice abarzuaf, pero recomendaría que usaras un archivo Temp$("Xml") por ejemplo, ya que se almacena en /tmp y se borra cuando termina tu aplicación. Claro, si lo quieres guardar en disco no va a servir lo que digo.
Saludos!
|
#5 Miercoles, 04 Agosto 2010, 21:47 |
|
|
jguardon
Administrador
Registrado: Septiembre 2009
Mensajes: 2708
Edad: 57 Ubicación: Granada
|
Re: Descargar Xml Y Leerlo Con Xmlread
Hay un método que no está documentado, pero que si funciona como creo, te ahorrará un montón de código:
FromString( Buffer As String, [URL as String] )
Para usarlo, supongo que basta con declarar una variable global "buffer" y pasar la URL como segundo argumento y el contenido xml se cargará en el objeto xmlReader. Después sólo tendrás que analizarlo con el resto de métodos que provee dicha clase. Se me ocurre este ejemplo:
DIM xml AS XmlReader
DIM miBuffer AS String ' esta puede ser global con PRIVATE
xml.FromString(miBuffer, "http://8tracks.com/sets/460486803/play.xml?mix_id=2000")
xml.Read()
'...implementar métodos para leer nodos, etc...
xml.Close()
Mira la clase XmlDocument, que también incorpora .FromString.
De esta forma te ahorras el código para descargar el xml de la web, aunque supongo que seguirá siendo necesario el componente gb.net.curl que debe usar tras bambalinas la clase xml---
No lo he probado, así que te paso la pelota para que lo pruebes y nos cuentes,
Saludos
=================== Jesús Guardón
Por favor, usemos el corrector ortográfico antes de pulsar el botón "Enviar".
"uo ǝs ʇɐu pıɟıɔıן ɐdɹǝupǝɹ ɐ dɹoƃɹɐɯɐɹ, soןo ɥɐʎ bnǝ dɹodouǝɹsǝןo"
|
#6 Miercoles, 04 Agosto 2010, 22:19 |
|
|
mato
Usuario
Registrado: Agosto 2010
Mensajes: 8
Edad: 42
|
Re: Descargar Xml Y Leerlo Con Xmlread
Muchas gracias por responder. Efectivamente, con fromstring se puede hacer, aunque no lo pude hacer directamente desde la web (será cuestión de investigar...no encuentro mucha documentación al respecto).
Pego como quedó el código funcionando, por si alguien tiene la misma duda:
También acá hacen una implementación de fromstring (bastante mejor que la mia, obvio).
Gracias!!!!
Mato.-
|
#7 Miercoles, 04 Agosto 2010, 23:11 |
|
|
mato
Usuario
Registrado: Agosto 2010
Mensajes: 8
Edad: 42
|
Re: Descargar Xml Y Leerlo Con Xmlread
Bueno, sigo con los problemas. Ahora para nevagar por el xml.
Como lo tomo con un xmldocument, que me permite cargar el xml con fromstring, y no con xmlreader, no se moverme por dentro del xml
Supongamos que tengo este archivo
<response>
<status>200 OK</status>
<set>
<at-beginning>false</at-beginning>
<at-end>false</at-end>
<skip-allowed>true</skip-allowed>
<track>
<release-name>Justified</release-name>
<faved-by-current-user>false</faved-by-current-user>
<year nil="true"></year>
<name>Rock Your Body</name>
<play-duration>0</play-duration>
<performer>Justin Timberlake</performer>
<id>16952</id>
<url>http://8tracks.s3.amazonaws.com/tf/000/016/952/Rock_Your_Body_mp3_887f6e637935be86c382.mp3</url>
</track>
</set>
<notices nil="true"></notices>
<logged-in>false</logged-in>
<errors nil="true"></errors>
</response>
Y quiero ir viendo los nombres de cada uno de los elementos y llegar a encontrar, por ejemplo, el <performer>, como se hace?
Gracias!
M.-
última edición por mato el Viernes, 06 Agosto 2010, 03:33; editado 1 vez
|
#8 Viernes, 06 Agosto 2010, 03:33 |
|
|
jguardon
Administrador
Registrado: Septiembre 2009
Mensajes: 2708
Edad: 57 Ubicación: Granada
|
Re: Descargar Xml Y Leerlo Con Xmlread
Te dejo un ejemplo totalmente funcional que escribí para uno de mis programas. Además verás cómo hacer una descarga del fichero xml asíncrona, es decir, que no bloqueará la GUI del programa mientras descarga. Verás también cómo se manejan los eventos para realizar el trabajo de HttpClient. Y por último, sobre la línea 113, comprobarás cómo hice para leer los valores de los nodos y asignarlo a variables globales de clase (para su posterior uso como "Propiedades").
http://trac6.assembla.com/dfhlog/browser/trunk/QRZ.class
Lamento que el código no esté comentado, pero creo que no será difícil de entender.
Te dejo también las especificaciones del xml que se utiliza. (Es un servicio de pago por suscripción, por eso hay dos pasos en la lectura del xml, uno para obtener una llave válida y otro para leer datos propiamente).
http://www.qrz.com/XML/current_spec.html
Puede ser denso para entender, pero si tienes dudas vuelve a preguntar.
Saludos
=================== Jesús Guardón
Por favor, usemos el corrector ortográfico antes de pulsar el botón "Enviar".
"uo ǝs ʇɐu pıɟıɔıן ɐdɹǝupǝɹ ɐ dɹoƃɹɐɯɐɹ, soןo ɥɐʎ bnǝ dɹodouǝɹsǝןo"
|
#9 Viernes, 06 Agosto 2010, 18:38 |
|
|
mato
Usuario
Registrado: Agosto 2010
Mensajes: 8
Edad: 42
|
Re: Descargar Xml Y Leerlo Con Xmlread
Jesús, muchísimas gracias por toda la información. Lo voy a leer detenidamente, y cualquier duda, te consulto nuevamente!
Saludos!
Mato.-
|
#10 Viernes, 06 Agosto 2010, 18:46 |
|
|
|
Temas parecidos
Temas parecidos
|
Página 1 de 1
|
Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado Usuarios registrados conectados: Ninguno
|
No puede crear mensajes No puede responder temas No puede editar sus mensajes No puede borrar sus mensajes No puede votar en encuestas No puede adjuntar archivos Puede descargar archivos No puede publicar eventos en el calendario
|
|
|
|
|