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 | 5 Comments »
agosto 1st, 2010 at 22:10
¡Perfectamente claro!. Muchas gracias.
septiembre 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???
septiembre 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!
junio 8th, 2013 at 21:43
el caracter extraño es por el utf8 lo que debes hacer es declararlo con esta codificacion
New System.Text.UTF8Encoding(False)
en lugar de con esta
System.Text.Encoding.UTF8
junio 8th, 2013 at 21:46
Gracias Alejandro por el detalle.
Un saludo.