Comunidad Gambas-es

Versión completa: RE: Gambas y XML
Actualmente estas viendo una versión simplificada de nuestro contenido. Ver la versión completa con el formato correcto.
Hola a todos.

No lo consigo. Por mas que lo he intentado no he sido capaz de leer un archivo XML. La documentación es muy escasa por no decir nula, aquí no he sacada nada en claro. Me he leído y repasado la parte de XML del libro de Daniel Campos y no he podido aclararme. ¿Alguien sabe usar el componente gb.xml que me pueda guiar? ¿o alguna guía o tutorial?

Muchas gracias.
Solo por preguntar, que ahora mismo no puedo mirarlo, ¿has buscado en la granja? Me suena que hay algo hecho al respecto y podría servirte de guía. Hasta donde yo sé, este componente lo usan algunos programadores en la lista de correo y funciona muy bien, pero es cierto que es bastante complicado. Yo por eso uso JSON, que es mucho más sencillo.

Saludos
(12-08-2020, 22:43)guizans escribió: [ -> ]Hola a todos.

No lo consigo. Por mas que lo he intentado no he sido capaz de leer un archivo XML. La documentación es muy escasa por no decir nula, aquí no he sacada nada en claro. Me he leído y repasado la parte de XML del libro de Daniel Campos y no he podido aclararme. ¿Alguien sabe usar el componente gb.xml que me pueda guiar? ¿o alguna guía o tutorial?

Muchas gracias.

Yo creo que te puedo ayudar, pero no lo he probado nunca, dime que quieres hacer.

Supongo que:
1. leer un xml
2. buscar ramas en el.
3. escribir nuevas lineas.
4. modificar lineas existentes
5. borrar lineas (hijos y padres por ejemplo)
6. reescribir el xml

¿Eso por ejemplo?

Te lo pregunto para hacerme un proyecto y probar su uso.

Nota: Tras intentar crear un proyecto para ayudarte, pues simplemente no se añadir el componente XML, Huh vaya ayuda que te voy a dar.
(13-08-2020, 14:03)gambafeliz escribió: [ -> ]
(12-08-2020, 22:43)guizans escribió: [ -> ]Hola a todos.

No lo consigo. Por mas que lo he intentado no he sido capaz de leer un archivo XML. La documentación es muy escasa por no decir nula, aquí no he sacada nada en claro. Me he leído y repasado la parte de XML del libro de Daniel Campos y no he podido aclararme. ¿Alguien sabe usar el componente gb.xml que me pueda guiar? ¿o alguna guía o tutorial?

Muchas gracias.

Yo creo que te puedo ayudar, pero no lo he probado nunca, dime que quieres hacer.

Supongo que:
1. leer un xml
2. buscar ramas en el.
3. escribir nuevas lineas.
4. modificar lineas existentes
5. borrar lineas (hijos y padres por ejemplo)
6. reescribir el xml

¿Eso por ejemplo?

Te lo pregunto para hacerme un proyecto y probar su uso.

Nota: Tras intentar crear un proyecto para ayudarte, pues simplemente no se añadir el componente XML, Huh vaya ayuda que te voy a dar.
 Hola.

Pues, en mi caso es algo tan sencillo como solo leerlo. El XML lo descargo de una página web e intento leerlo. Pero por mas que he probado no acaba de funcionar, mas que nada por que no comprendo como funciona la clase xmlReader. No tengo ni idea.

(12-08-2020, 23:36)jguardon escribió: [ -> ]Solo por preguntar, que ahora mismo no puedo mirarlo, ¿has buscado en la granja? Me suena que hay algo hecho al respecto y podría servirte de guía. Hasta donde yo sé, este componente lo usan algunos programadores en la lista de correo y funciona muy bien, pero es cierto que es bastante complicado. Yo por eso uso JSON, que es mucho más sencillo.

Saludos

Pues no lo he mirado, le voy a echar un vistazo a ver si veo algo. ¿Qué componente usas para leer JSON? Por que también me puede valer.
Yo te ayudo gracias a que ya sé instalar gb.XML pero me deja en duda cuando dices que lo vas a intentar con JSon.

Voy a mirartelo.

Aaadios
(12-08-2020, 22:43)guizans escribió: [ -> ]Hola a todos.
No lo consigo. Por mas que lo he intentado no he sido capaz de leer un archivo XML. La documentación es muy escasa por no decir nula, aquí no he sacada nada en claro. Me he leído y repasado la parte de XML del libro de Daniel Campos y no he podido aclararme. ¿Alguien sabe usar el componente gb.xml que me pueda guiar? ¿o alguna guía o tutorial?
Hola Guizans, leer un xml es relativamente fácil.
Te dejo un ejemplo de como hacerlo como adjunto y tambien en código aquí.
GAMBAS
  1. ' Gambas class file
  2. Public Sub Button1_Click()
  3.   Dim stx As String[]
  4.   If Exist("./default.xml") Then
  5.     stx = ReadXML("./default.xml")
  6.   TreeView1.Clear
  7.   TreeView1.Add("root", "xml")
  8.   If stx.Count > 0 Then
  9.     For Each v In stx
  10.       TreeView1.Add(CStr(i), v,, "root")
  11.       Inc i
  12.     Next
  13.   TreeView1["root"].Expanded = True
  14.   Dim document As New XmlDocument
  15.   Dim node As XmlNode
  16.   Dim stx As New String[]
  17.   document.Open(xf)
  18.   For Each node In document.All
  19.     stx.Add(node.Name & ":" & node.Value)
  20.   Next
  21.   Return stx


Nota: Tienes que habilitar el componente gb.xml
Saludos.
(13-08-2020, 17:37)guizans escribió: [ -> ] Hola.

Pues, en mi caso es algo tan sencillo como solo leerlo. El XML lo descargo de una página web e intento leerlo. Pero por mas que he probado no acaba de funcionar, mas que nada por que no comprendo como funciona la clase xmlReader. No tengo ni idea.

Mira esta página para ver si te sirve: https://es.wikibooks.org/wiki/Gambas/Man...mentos_XML

Este código es de la página pero corregido por que el de la página no va bien:
GAMBAS
  1. Public Sub Button1_Click()
  2. Dim reader As XmlReader
  3.  
  4. reader = New XmlReader
  5. Try reader.Open(User.home & "/Descargas/Heroes.xml")
  6. Message.Error("Error when trying to open the Heroes.XML file!")
  7. Try reader.Read()
  8. If reader.Eof Then Break
  9.  
  10. Select Case reader.Node.Name
  11. Case "heroe"
  12. For Each reader.Node.Attributes
  13. If reader.Node.Name = "name" Then
  14. Try TreeView1.Add(reader.Node.Value, "Characters of the TV Series: " & reader.Node.Value, Null, Null)
  15. 'Here goes the next block of code
  16.  
  17. reader.Close()



Adjuto el xml también corregido por que el de la página no va bien con el ejemplo real de la página.

XML
  1. <?xml version="1.0" encoding="UTF-16" ?>
  2. <characters serie="Heroes">
  3. <heroe id="1" name="Claire Bennet">
  4. <name>Claire Bennet</name>
  5. <played_by>Hayden Panettiere</played_by>
  6. <ability>
  7. Rapid cellular regeneration
  8. </ability>
  9. </heroe>
  10. <heroe id="2" name="Hiro Nakamura">
  11. <name>Hiro Nakamura</name>
  12. <played_by>Masi Oka</played_by>
  13. <ability>
  14. Space-time manipulation: teleportation - time travel
  15. </ability>
  16. </heroe>
  17. <villain id="1" name=" Gabriel Sylar">
  18. <name>Gabriel Sylar</name>
  19. <played_by>Zachary Quinto</played_by>
  20. <ability>
  21. Understand how things work and multiple other abilities acquired
  22. </ability>
  23. </villain>
  24. </characters>


Gracias a los dos. Estudio vuestros ejemplos y espero conseguirlo.

Un saludo.

P.D.: Vuestros códigos me han servido y me han sido de mucha utilidad, de nuevo muchas gracias.

Un saludo.