Comunidad Gambas-es
[SOLUCIONADO] RE: Gambas y XML - Versión para impresión

+- Comunidad Gambas-es (https://gambas-es.org)
+-- Foro: Gambas (https://gambas-es.org/forum-3.html)
+--- Foro: Controles/Librerías/Componentes (https://gambas-es.org/forum-7.html)
+--- Tema: [SOLUCIONADO] RE: Gambas y XML (/thread-64.html)



RE: Gambas y XML - guizans - 12-08-2020

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.


RE: Gambas y XML - jguardon - 12-08-2020

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


RE: Gambas y XML - gambafeliz - 13-08-2020

(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.


RE: Gambas y XML - guizans - 13-08-2020

(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.


RE: Gambas y XML - gambafeliz - 13-08-2020

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


RE: Gambas y XML - tincho - 13-08-2020

(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í.
Código:
' Gambas class file
Public Sub Button1_Click()
  Dim stx As String[]
  Dim v As String
  Dim i As Integer
  If Exist("./default.xml") Then
    stx = ReadXML("./default.xml")
  Endif
  TreeView1.Clear
  TreeView1.Add("root", "xml")
  If stx.Count > 0 Then
    For Each v In stx
      TreeView1.Add(CStr(i), v,, "root")
      Inc i
    Next
  Endif
  TreeView1["root"].Expanded = True
End
Public Function ReadXML(xf As String) As String[]
  Dim document As New XmlDocument
  Dim node As XmlNode
  Dim stx As New String[]
  document.Open(xf)
  For Each node In document.All
    stx.Add(node.Name & ":" & node.Value)
  Next
  Return stx
End
Nota: Tienes que habilitar el componente gb.xml
Saludos.


RE: Gambas y XML - gambafeliz - 13-08-2020

(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/Manipular_documentos_XML

Este código es de la página pero corregido por que el de la página no va bien:
Código:
Public Sub Button1_Click()
   Dim reader As XmlReader

   reader = New XmlReader
   Try reader.Open(User.home & "/Descargas/Heroes.xml")
   If Error Then
      Message.Error("Error when trying to open the Heroes.XML file!")
      Return
   Endif
   Do While True
      Try reader.Read()
      If reader.Eof Then Break

      Select Case reader.Node.Name
         Case "heroe"
            For Each reader.Node.Attributes
               If reader.Node.Name = "name" Then
                  Try TreeView1.Add(reader.Node.Value, "Characters of the TV Series: " & reader.Node.Value, Null, Null)
               Endif
            Next
            'Here goes the next block of code
      End Select

   Loop
   reader.Close()
End

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

Código:
<?xml version="1.0" encoding="UTF-16" ?>
<characters serie="Heroes">
  <heroe id="1" name="Claire Bennet">
    <name>Claire Bennet</name>
    <played_by>Hayden Panettiere</played_by>
    <ability>
      Rapid cellular regeneration
    </ability>
  </heroe>
  <heroe id="2" name="Hiro Nakamura">
    <name>Hiro Nakamura</name>
    <played_by>Masi Oka</played_by>
    <ability>
      Space-time manipulation: teleportation - time travel
    </ability>
  </heroe>
  <villain id="1" name=" Gabriel Sylar">
    <name>Gabriel Sylar</name>
    <played_by>Zachary Quinto</played_by>
    <ability>
      Understand how things work and multiple other abilities acquired
    </ability>
  </villain>
</characters>



RE: Gambas y XML (SOLUCIONADO) - guizans - 14-08-2020

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.