Código de lectura en un fichero XML. Obtención de datos de artículos.
Se crea una aplicación que permita leer un fichero XML, mostrándolo en un control TextBox.
También permitirá añadir datos al final del fichero.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
CÓDIGO LECTURA DE UN FICHERO XML
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Dim total_elementos As Integer
'cargar el fichero xml
Dim documento_xml As New xmldocument
documento_xml.Load("C:\XMLFile1.xml")
TextBox1.Text = "Datos contenidos en el fichero C:\XMLFile1.xml" & Environment.NewLine
TextBox1.Text = TextBox1.Text & " - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -" & Environment.NewLine & Environment.NewLine
Dim articulos As XmlNode = documento_xml.DocumentElement
For Each articulo As XmlElement In articulos.ChildNodes
'se añade el atributo al textbox
TextBox1.Text = TextBox1.Text & "Código de artículo: "
TextBox1.Text = TextBox1.Text & articulo.GetAttribute("codigo_articulo")
TextBox1.Text = TextBox1.Text & Environment.NewLine
'se añaden los valores de los textos al textbox
TextBox1.Text = TextBox1.Text & "Descripción: "
TextBox1.Text = TextBox1.Text & articulo.Item("descripcion").InnerText
TextBox1.Text = TextBox1.Text & Environment.NewLine
TextBox1.Text = TextBox1.Text & "Precio de compra: "
TextBox1.Text = TextBox1.Text & articulo.Item("precio_compra").InnerText
TextBox1.Text = TextBox1.Text & " - IVA de compra: "
TextBox1.Text = TextBox1.Text & articulo.Item("iva_compra").InnerText
' TextBox1.Text = TextBox1.Text & Environment.NewLine
TextBox1.Text = TextBox1.Text & " - Importe IVA compra: " & (CDbl(articulo.Item("precio_compra").InnerText) * CDbl(articulo.Item("iva_compra").InnerText) / 100)
TextBox1.Text = TextBox1.Text & Environment.NewLine
TextBox1.Text = TextBox1.Text & "PVP compra: " & (CDbl(articulo.Item("precio_compra").InnerText) * (1 + (CDbl(articulo.Item("iva_compra").InnerText) / 100)))
TextBox1.Text = TextBox1.Text & Environment.NewLine
TextBox1.Text = TextBox1.Text & "Precio de venta: "
TextBox1.Text = TextBox1.Text & articulo.Item("precio_venta").InnerText
TextBox1.Text = TextBox1.Text & " - IVA de venta: "
TextBox1.Text = TextBox1.Text & articulo.Item("iva_venta").InnerText
'TextBox1.Text = TextBox1.Text & Environment.NewLine
TextBox1.Text = TextBox1.Text & " - Importe IVA venta: " & (CDbl(articulo.Item("precio_venta").InnerText) * CDbl(articulo.Item("iva_venta").InnerText) / 100)
TextBox1.Text = TextBox1.Text & Environment.NewLine
TextBox1.Text = TextBox1.Text & "PVP venta: " & (CDbl(articulo.Item("precio_venta").InnerText) * (1 + (CDbl(articulo.Item("iva_venta").InnerText) / 100)))
TextBox1.Text = TextBox1.Text & Environment.NewLine
TextBox1.Text = TextBox1.Text & Environment.NewLine
total_elementos += 1
Next
'TextBox1.Text = TextBox1.Text & Environment.NewLine
TextBox1.Text = TextBox1.Text & " - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -" & Environment.NewLine
TextBox1.Text = TextBox1.Text & "Se han mostrado un total de " & total_elementos & " artículos."
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
CÓDIGO ESCRITURA DE UN FICHERO XML
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Private Sub bt_anadir_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bt_anadir.Click
'Se crea una variable para acceder al documento XML
Dim documento_xml As New XmlDocument
'Se indica la ubicación del fichero y se abre
documento_xml.Load("C:\XMLFile1.xml")
Dim articulo As XmlElement = documento_xml.CreateElement("articulo")
articulo.SetAttribute("codigo_articulo", txt_codigo.Text)
Dim descripcion As XmlElement = documento_xml.CreateElement("descripcion")
descripcion.InnerText = txt_descripcion.Text
articulo.AppendChild(descripcion)
Dim precio_compra As XmlElement = documento_xml.CreateElement("precio_compra")
precio_compra.InnerText = txt_neto_compra.Text
articulo.AppendChild(precio_compra)
Dim iva_compra As XmlElement = documento_xml.CreateElement("iva_compra")
iva_compra.InnerText = txt_iva_compra.Text
articulo.AppendChild(iva_compra)
Dim precio_venta As XmlElement = documento_xml.CreateElement("precio_venta")
precio_venta.InnerText = txt_neto_venta.Text
articulo.AppendChild(precio_venta)
Dim iva_venta As XmlElement = documento_xml.CreateElement("iva_venta")
iva_venta.InnerText = txt_iva_venta.Text
articulo.AppendChild(iva_venta)
'Se obtiene el nodo raiz que en este caso se corresponde con la etiqueta articulos
Dim nodo_raiz As XmlNode = documento_xml.DocumentElement
'Se inserta el artículo al final del archivo dentro del nodo raiz
nodo_raiz.InsertAfter(articulo, nodo_raiz.LastChild)
documento_xml.Save("C:\XMLFile1.xml")
MessageBox.Show("Dato añadido correctamente.")
End Sub
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FORMATO DEL FICHERO XML
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
<?xml version="1.0" encoding="utf-8"?>
<articulos>
<articulo codigo_articulo="0001">
<descripcion>Articulo de prueba 0001</descripcion>
<precio_compra>12</precio_compra>
<iva_compra>18</iva_compra>
<precio_venta>21</precio_venta>
<iva_venta>18</iva_venta>
</articulo>
<articulo codigo_articulo="0002">
<descripcion>Articulo de prueba 0002</descripcion>
<precio_compra>120</precio_compra>
<iva_compra>8</iva_compra>
<precio_venta>150</precio_venta>
<iva_venta>8</iva_venta>
</articulo>
<articulo codigo_articulo="0003">
<descripcion>Articulo de prueba 0003</descripcion>
<precio_compra>1</precio_compra>
<iva_compra>18</iva_compra>
<precio_venta>25</precio_venta>
<iva_venta>8</iva_venta>
</articulo>
<articulo codigo_articulo="0004">
<descripcion>Articulo de prueba 0004</descripcion>
<precio_compra>1,15</precio_compra>
<iva_compra>18</iva_compra>
<precio_venta>2,99</precio_venta>
<iva_venta>8</iva_venta>
</articulo>
<articulo codigo_articulo="0005">
<descripcion>Articulo de prueba 0004</descripcion>
<precio_compra>100</precio_compra>
<iva_compra>18</iva_compra>
<precio_venta>1000</precio_venta>
<iva_venta>8</iva_venta>
</articulo>
<articulo codigo_articulo="0007">
<descripcion>descripcion</descripcion>
<precio_compra>100</precio_compra>
<iva_compra>18</iva_compra>
<precio_venta>200</precio_venta>
<iva_venta>18</iva_venta>
</articulo>
<articulo codigo_articulo="008">
<descripcion>art008</descripcion>
<precio_compra>200</precio_compra>
<iva_compra>18</iva_compra>
<precio_venta>500</precio_venta>
<iva_venta>8</iva_venta>
</articulo>
<articulo codigo_articulo="0009">
<descripcion>Descripcion Articulo 0009</descripcion>
<precio_compra>100</precio_compra>
<iva_compra>18</iva_compra>
<precio_venta>200</precio_venta>
<iva_venta>18</iva_venta>
</articulo>
<articulo codigo_articulo="0010">
<descripcion>Descripcion Articulo 0010</descripcion>
<precio_compra>100</precio_compra>
<iva_compra>18</iva_compra>
<precio_venta>200</precio_venta>
<iva_venta>18</iva_venta>
</articulo>
<articulo codigo_articulo="0011">
<descripcion>Descripcion Articulo 0011</descripcion>
<precio_compra>1000</precio_compra>
<iva_compra>18</iva_compra>
<precio_venta>2000</precio_venta>
<iva_venta>18</iva_venta>
</articulo>
<articulo codigo_articulo="0012">
<descripcion>Descripcion Articulo 0012</descripcion>
<precio_compra>1</precio_compra>
<iva_compra>18</iva_compra>
<precio_venta>2,5</precio_venta>
<iva_venta>18</iva_venta>
</articulo>
<articulo codigo_articulo="0013">
<descripcion>Descripcion Articulo 13</descripcion>
<precio_compra>100</precio_compra>
<iva_compra>18</iva_compra>
<precio_venta>200</precio_venta>
<iva_venta>18</iva_venta>
</articulo>
</articulos>