Como leer un archivo XML en VB.NET

0
2329

Como primer paso debemos tener un archivo XML que nos sirva para probar nuestra aplicación. Podemos crearlo con el código detallado abajo con el nombre de XMLPrueba.xml. Debemos crear este archivo en un editor como el NotePad, ya que necesitamos un archivo sin caracteres extraños.

<?xml version=”1.0″ encoding=”UTF-8″?>
<usuarios>
<name codigo=”mtorres”>
<nombre>Maria </nombre>
<apellido>Torres </apellido>
</name>
<name codigo=”cortiz”>
<nombre>Carlos </nombre>
<apellido>Ortiz </apellido>
</name>
</usuarios>

Luego de tener nuestro archivo XML creado podremos crear nuestro código en VB.NET

Utilizando el XMLTextReader
Este formato es muy sencillo y para leer el achivo XML debemos hacerlo secuencialmente, línea por línea.

Imports System.IO
Imports System.Xml
Module ParsingUsingXmlTextReader
Sub Main()
Dim m_xmlr As XmlTextReader
'Creamos el XML Reader
m_xmlr = New XmlTextReader(“C:XMLPrueba.xml”)

'Desabilitamos las lineas en blanco,
'ya no las necesitamos
m_xmlr.WhiteSpaceHandling = WhiteSpaceHandling.NONE

'Leemos el archivo y avanzamos al tag de usuarios
m_xmlr.Read()

'Leemos el tag usuarios
m_xmlr.Read()

'Creamos la secuancia que nos permite
'leer el archivo
While Not m_xmlr.EOF
'Avanzamos al siguiente tag
m_xmlr.Read()

'si no tenemos el elemento inicial
'debemos salir del ciclo
If Not m_xmlr.IsStartElement() Then
Exit While
End If

'Obtenemos el elemento codigo
Dim mCodigo = m_xmlr.GetAttribute(“codigo”)
'Read elements firstname and lastname

m_xmlr.Read()
'Obtenemos el elemento del Nombre del Usuario
Dim mNombre = m_xmlr.ReadElementString(“nombre”)

'Obtenemos el elemento del Apellido del Usuario
Dim mApellido = m_xmlr.ReadElementString(“apellido”)

'Escribimos el resultado en la consola,
'pero tambien podriamos utilizarlos en
'donde deseemos
Console.WriteLine(“Codigo usuario: ” & mCodigo _
& ” Nombre: ” & mNombre _
& ” Apellido: ” & mApellido)
Console.Write(vbCrLf)
End While

'Cerramos la lactura del archivo
m_xmlr.Close()

End Sub
End Module

Utilizando el XmlDocument
Este formato es mas complejo y nos permite recorrer los nodos sin tener que utilizar una lectura secuencial. Definitivamente este formato es más eficiente que el anterior principalmente para documentos XML muy grandes.

Imports System.IO
Imports System.Xml
Module ParsingUsingXmlDocument
Sub Main()
Try
Dim m_xmld As XmlDocument
Dim m_nodelist As XmlNodeList
Dim m_node As XmlNode

'Creamos el “XML Document”
m_xmld = New XmlDocument()

'Cargamos el archivo
m_xmld.Load(“C:XMLPrueba.xml”)

'Obtenemos la lista de los nodos “name”
m_nodelist = m_xmld.SelectNodes(“/usuarios/name”)

'Iniciamos el ciclo de lectura
For Each m_node In m_nodelist
'Obtenemos el atributo del codigo
Dim mCodigo = m_node.Attributes.GetNamedItem(“codigo”).Value

'Obtenemos el Elemento nombre
Dim mNombre = m_node.ChildNodes.Item(0).InnerText

'Obtenemos el Elemento apellido
Dim mApellido = m_node.ChildNodes.Item(1).InnerText

'Escribimos el resultado en la consola,
'pero tambien podriamos utilizarlos en
'donde deseemos
Console.Write(“Codigo usuario: ” & mCodigo _
& ” Nombre: ” & mNombre _
& ” Apellido: ” & mApellido)
Console.Write(vbCrLf)

Next
Catch ex As Exception
'Error trapping
Console.Write(ex.ToString())
End Try
End Sub
End Module

Dejar respuesta

Please enter your comment!
Please enter your name here

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.