Saltar al contenido

leyendo archivos xml en vb6

Solución:

Puede hacerlo con MSXML, que ofrece una funcionalidad similar a algunas de las API XML de .NET. No tengo una copia de VB6 en este momento, pero es bastante fácil. Primero, agregue una referencia a MSXML de su proyecto VB6. Luego haría algo como lo siguiente:

  • Cree una instancia de MSXML2.DOMDocument
  • Llame al método Load para analizar el archivo XML
  • Llama a selectNodes("/Report/Categories/Category"). Esto devolverá un objeto IXMLDOMNodeList.
  • A continuación, puede recorrer la lista de nodos recuperando cada IXMLDOMNode a través de item o nextNode.
  • A continuación, puede obtener el name y value utilizando el attributes propiedad del XMLDOMNode o utilizando selectSingleNode("@name").Text y selectSingleNode("@value").Text

MSXML es bastante flexible, por lo que hay una sintaxis aún más corta que puede usar, pero lo anterior debería funcionar para usted. Si aún no lo ha descubierto, publicaré el código cuando llegue a una máquina con VB6 instalado.

UDPATE:

A continuación, se muestra un ejemplo práctico que utiliza la muestra XML que proporcionó.

Sub ParseXmlDocument()
   Dim doc As New MSXML2.DOMDocument
   Dim success As Boolean

   success = doc.Load(App.Path & "test.xml")
   If success = False Then
      MsgBox doc.parseError.reason
   Else
      Dim nodeList As MSXML2.IXMLDOMNodeList

      Set nodeList = doc.selectNodes("/Report/Categories/Category")

      If Not nodeList Is Nothing Then
         Dim node As MSXML2.IXMLDOMNode
         Dim name As String
         Dim value As String

         For Each node In nodeList
            ' Could also do node.attributes.getNamedItem("name").text
            name = node.selectSingleNode("@name").Text
            value = node.selectSingleNode("@value").Text
         Next node
      End If
   End If
End Sub

Utilice MSXML como se recomienda en esta pregunta (y en el artículo vinculado por Ardman).

Puede utilizar IXMLDOMElement.getAttributeNode para leer atributos.

Por ejemplo, este código a continuación lee el archivo books.xml de muestra de MSDN y accede a un atributo. Necesita una referencia a una versión de Microsoft XML.

Private Sub Form_Load()
Dim xmlDoc As New MSXML2.DOMDocument30
Dim nodeBook As IXMLDOMElement
Dim nodeId As IXMLDOMAttribute
Dim sIdValue As String
xmlDoc.async = False
xmlDoc.Load App.Path & "books.xml"
If (xmlDoc.parseError.errorCode <> 0) Then
   Dim myErr
   Set myErr = xmlDoc.parseError
   MsgBox ("You have error " & myErr.reason)
Else
   Set nodeBook = xmlDoc.selectSingleNode("//book")
   Set nodeId = nodeBook.getAttributeNode("id")
   sIdValue = nodeId.xml
   MsgBox sIdValue
End If

End Sub
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)


Tags : / /

Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *