1: Dim xml As XElement = <Root> _
2: <Elemento /> _
3: <Root>
Si necesitamos incluir en el xml el valor de una variable o cualquier código podemos usar los tags <%= >:
1: Dim a As String = "Hola"
2: Dim xml As XElement = <Root> _
3: <Elemento><%= a %></Elemento> _
4: <Root>
Escribir xml también es sencillo pero no tan directo.
En este ejemplo uso Linq para crear XML desde un árbol de objetos y después poder leer de nuevo el XML con Linq y crear de nuevo los objetos.
Por supuesto para correr los ejemplos hay que crear los tipos de datos necesarios, todas las colecciones son de tipo List(Of T)
Escribir (Linq a XML):
1: Dim peliculas As List(Of Pelicula)
2: Dim source As New PeliculaTA
3: peliculas = source.Retrieve()
4: Dim xmlArch As XElement = _
5: <Peliculas>
6: <%= From m In peliculas _
7: Select _
8: <Pelicula>
9: <Titulo><%= m.Titulo %></Titulo>
10: <Director><%= m.Director %></Director>
11: <Estrenado><%= m.Estrenado %></Estrenado>
12: <Actores>
13: <%= From a In m.Actores _
14: Select _
15: <Actor>
16: <Nombre><%= a.Nombre %></Nombre>
17: <Nacimiento><%= a.Nacimiento %></Nacimiento>
18: <Roles>
19: <%= From r In a.Roles _
20: Select _
21: <Rol>
22: <NombrePelicula><%= r.Pelicula %></NombrePelicula>
23: <NombreRol><%= r.NombreRol %></NombreRol>
24: </Rol> _
25: %>
26: </Roles>
27: </Actor> _
28: %>
29: </Actores>
30: </Pelicula> _
31: %>
32: </Peliculas>
33: File.WriteAllText("peliculas.xml", xmlArch.ToString())
Leer (XML a Linq):
1: Dim xmlArch As XElement = XElement.Load("peliculas.xml")
2: Dim peliculas = From m In xmlArch...<Pelicula> _
3: Select New Pelicula With { _
4: .Titulo = m.<Titulo>.Value _
5: , .Director = m.<Director>.Value _
6: , .Estrenado = m.<Estrenado>.Value _
7: , .Actores = (From c In m...<Actor> _
8: Select New Actor With { _
9: .Nombre = c.<Nombre>.Value _
10: , .Nacimiento = c.<Nacimiento>.Value _
11: , .Roles = (From r In c...<Rol> _
12: Select New Rol With { _
13: .Pelicula = r.<NombrePelicula>.Value _
14: , .NombreRol = r.<NombreRol>.Value _
15: }).ToList() _
16: }).ToList() _
17: }
El resultado de el último ejemplo es un Enumerable(Of Pelicula) el cual hay que recorrer por ejemplo con For Each para obtener resultados.
Para aprender mas sobre Linq visita:
Lista de artículos acerca de Linq
Para aprender más sobre el uso de XML en .Net Framework visita:
Lista de artículos acerca del uso de XML en .Net Framework
No hay comentarios:
Publicar un comentario