Este es un ejemplo para leer archivos xml, probado en windows xp.
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
Enlaces que te pueden interesar:
dotnetcr.com
Roy Rojas de http://www.dotnetcr.com


Excelente me ayudo mucho!!!!