Visual Basic .NET – Trabajar con archivos XML (XmlTextWriter)
Written by lopezatienza on 31/05/2010 – 10:43 -Hola a todos.
Voy a explicar un ejemplo sencillo para leer y escribir en un archivo xml desde vb.net
Primeramente creamos un archivo con extensión xml. En este ejemplo vamos a trabajar con un archivo que guarda la hora y minuto de 2 horas diferentes.
<?xml version="1.0" encoding="utf-8"?>
<Configuracion>
<name id="HoraPrimera">
<hora>5</hora>
<minuto>15</minuto>
</name>
<name id="HoraSegunda">
<hora>6</hora>
<minuto>30</minuto>
</name>
</Configuracion>
La función de lectura del archivo XML será:
Private Sub LeerArchivoXML(ByVal ruta As String)
Try
Dim xmlConfig As XmlDocument
Dim m_nodelist As XmlNodeList
Dim m_node As XmlNode
'Creamos el "XML Document"
xmlConfig = New XmlDocument()
'Cargamos el archivo
xmlConfig.Load(ruta)
'Obtenemos la lista de los nodos "id"
m_nodelist = xmlConfig.SelectNodes("/Configuracion/name")
Dim indice As Integer = 0
'Iniciamos el ciclo de lectura
For Each m_node In m_nodelist
'Obtenemos el atributo del codigo
Dim mCodigo As String = m_node.Attributes.GetNamedItem("id").Value
'Obtenemos el Elemento Hora
Dim mHora As Integer = m_node.ChildNodes.Item(0).InnerText
'Obtenemos el Elemento Minuto
Dim mMinuto As Integer = m_node.ChildNodes.Item(1).InnerText
If indice = 0 Then
MessageBox.Show("La primera hora es: " & mHora.ToString("00") & ":" & mMinuto.ToString("00"))
indice += 1
Else
MessageBox.Show("La segunda hora es: " & mHora.ToString("00") & ":" & mMinuto.ToString("00"))
End If
Next
Catch ex As Exception
End Try
End Sub
La función de escritura del archivo XML será:
Private Sub EscribirXML(ByVal ruta As String)
Try
Dim xmlConfig As XmlTextWriter = New XmlTextWriter(ruta, System.Text.Encoding.UTF8)
xmlConfig.Formatting = Formatting.Indented
xmlConfig.WriteStartDocument()
xmlConfig.WriteStartElement("Configuracion")
xmlConfig.WriteStartElement("name")
xmlConfig.WriteStartAttribute("id")
xmlConfig.WriteString("HoraPrimera")
xmlConfig.WriteElementString("hora", "15")
xmlConfig.WriteElementString("minuto", "10")
xmlConfig.WriteEndElement()
xmlConfig.WriteStartElement("name")
xmlConfig.WriteStartAttribute("id")
xmlConfig.WriteString("HoraSegunda")
xmlConfig.WriteElementString("hora", "23")
xmlConfig.WriteElementString("minuto", "59")
xmlConfig.WriteEndElement()
xmlConfig.WriteEndElement()
xmlConfig.Close()
Catch ex As Exception
End Try
End Sub
Namespaces
Imports System.Xml
Espero os sirva de ayuda.
Un saludo.
Tags: Visual Basic
Posted in Visual Basic .NET | 3 Comments »


August 1st, 2010 at 22:10
¡Perfectamente claro!. Muchas gracias.
September 18th, 2010 at 07:15
Por que me crea un caracter especial al inicio del xml, parece que es un [tab] o algo asi, pero en mi cadena de string no tengo nada especial???
September 20th, 2010 at 10:45
Hola Arpeca, si me adjuntas el código que has utilizado quizás te sea de más ayuda.
Un saludo!