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.


Autor: Antonio Lopez Atienza


Tags:
Posted in Visual Basic .NET | 5 Comments »

5 Comments to “Visual Basic .NET – Trabajar con archivos XML (XmlTextWriter)”

  1. Daniel Says:

    ¡Perfectamente claro!. Muchas gracias.

  2. Arpeca Says:

    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???

  3. lopezatienza Says:

    Hola Arpeca, si me adjuntas el código que has utilizado quizás te sea de más ayuda.

    Un saludo!

  4. Alejandro Says:

    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

  5. lopezatienza Says:

    Gracias Alejandro por el detalle.

    Un saludo.

Leave a Comment

 

RSS
MCC D5E