Sei sulla pagina 1di 3

11/6/2014

Cmo: Serializar y deserializar XML en Visual Basic .NET

Al usar este sitio Ud. acepta el uso de cookies para anlisis, contenido personalizado y publicidad.

Saber ms

Cmo: Serializar y deserializar XML en Visual


Basic .NET
Id. de artculo: 316730 - Ver los productos a los que se aplica este artculo

Resumen
En este artculo se muestra cmo utilizar la clase System.XmlSerialization.XmlSerializer para serializar y deserializar un objeto al lenguaje de marcado
Extensible (XML).

Requisitos
La lista siguiente describe el hardware recomendado, software, infraestructura de red y service Pack que necesitan:
Microsoft Visual Studio .NET
En este artculo se supone que est familiarizado con los temas siguientes:
Microsoft Visual Basic .NET
XML

Requisitos
La serializacin es el proceso mediante el cual almacena el estado de un objeto en una secuencia de datos. Serializacin permite mantener el estado de un
objeto para que pueda recuperar el estado posteriormente. La serializacin permite clonar un objeto existente para crear un nuevo objeto. El espacio de
nombres contiene clases que puede utilizar para serializar objetos en XML.

Descripcin de la serializacin XML


En esta seccin, crear una aplicacin de consola:
Deserializa un objeto a XML.
La serializacin XML se guarda en un archivo de texto.
Lee el XML en el archivo de texto para crear un nuevo objeto (deserializacin).
1. Siga estos pasos para crear una nueva aplicacin de consola en Visual Basic. NET:
a. Inicie Visual Studio. NET.
b. En el men archivo, elija nuevo y, a continuacin, haga clic en proyecto.
c. En el cuadro de dilogo Nuevo proyecto , haga clic en Proyectos de Visual Basic en Tipos de proyectoy, a continuacin, haga clic en Aplicacin
de consola en plantillas.
2. Siga estos pasos para agregar una nueva clase al proyecto:
a. En el men proyecto , haga clic en Agregar clase.
b. En el cuadro de dilogo Agregar nuevo elemento , escriba clsProduct.vb en el cuadro de texto nombre y, a continuacin, haga clic en Abrir.
3. Reemplace el cdigo en la ventana de cdigo de clsProduct.vb con el cdigo siguiente:
Public Class clsProduct Private mstrName As String Private mstrDescription As String Private mintQty As Integer Public
Property Name() As String Get Name = mstrName End Get Set(ByVal Value As String) mstrName = Value End Set End Property Public
Property Description() As String Get Description = mstrDescription End Get Set(ByVal Value As String) mstrDescription = Value
End Set End Property Public Property Qty() As Integer Get Qty = mintQty End Get Set(ByVal Value As Integer) mintQty = Value
End Set End Property End Class
Este cdigo crea una clase de producto con tres propiedades: nombre, Descripciny cantidad (cantidad).
4. Cambiar a la ventana de cdigo para Module1.vb y, a continuacin, agregue el cdigo siguiente en la parte superior de la ventana de cdigo:
Imports System.IO Imports System.Xml.Serialization
5. En el procedimiento Sub Main , agregue el cdigo siguiente para crear y rellenar una instancia de la clase clsProduct :
'Set up product object. Dim p As New clsProduct() p.Name = "Widget" p.Description = "Faster, better, cheaper" p.Qty = 5
6. Utilice el objeto XmlSerializer para serializar el objeto a XML y para guardar el estado del objeto en un archivo de texto. Para ello, agregue el cdigo
siguiente inmediatamente antes de la instruccin End Sub en el procedimiento Sub Main :
'Serialize object to a text file. Dim objStreamWriter As New StreamWriter("C:\Product.xml") Dim x As New
XmlSerializer(p.GetType) x.Serialize(objStreamWriter, p) objStreamWriter.Close()
7. En el men Depurar , haga clic en Iniciar para ejecutar la aplicacin.
8. Abra el archivo Product.xml en el Bloc de notas o en Microsoft Internet Explorer.
<?xml version="1.0" encoding="utf-8"?> <clsProduct xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <Name>Widget</Name> <Description>Faster, better,
cheaper</Description> <Qty>5</Qty> </clsProduct>

http://support.microsoft.com/kb/316730

1/3

11/6/2014

Cmo: Serializar y deserializar XML en Visual Basic .NET


9. El espacio de nombres de Xml.Serialization le permite personalizar la salida que genera la clase XmlSerializer . Por ejemplo, en la clase clsProduct , el
campo cantidad se abrevia como Cdad. Puede utilizar el atributo XmlElementAttribute para cambiar el campo cantidad cuando se serializa la clase.
Cambiar a la ventana de cdigo para clsProduct.vb y, a continuacin, agregue el cdigo siguiente en la parte superior de la ventana de cdigo:
Imports System.Xml.Serialization
10. Busque el procedimiento de propiedad para la cantidady, a continuacin, inserte el cdigo siguiente inmediatamente antes de la instruccin Qty() As
Integer de propiedad pblica :
<XmlElementAttribute(ElementName:="Quantity")> _
11. En el men Depurar , haga clic en Iniciar para ejecutar la aplicacin.
12. Abra el archivo Product.xml en el Bloc de notas o en Internet Explorer.
<?xml version="1.0" encoding="utf-8"?> <clsProduct xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <Name>Widget</Name> <Description>Faster, better,
cheaper</Description> <Quantity>5</Quantity> </clsProduct>
Observe que el elemento Qty cambiado a la cantidad.
13. Cambiar a la ventana de cdigo para Module1.vb y, a continuacin, agregue el cdigo siguiente en el procedimiento Sub Main inmediatamente antes de
la instruccin End Sub :
'Deserialize text file to a new object. Dim objStreamReader As New StreamReader("C:\Product.xml") Dim p2 As New clsProduct()
p2 = x.Deserialize(objStreamReader) objStreamReader.Close() 'Display property values of the new product object.
Console.WriteLine(p2.Name) Console.WriteLine(p2.Description) Console.WriteLine(CStr(p2.Qty)) Console.ReadLine()
Este cdigo deserializa el archivo de texto Product.xml para crear un nuevo objeto clsProduct denominado p2.

Crear la aplicacin de consola en Visual Basic .NET


En el men Depurar , haga clic en Iniciar para ejecutar la aplicacin.
Widget Faster, better, cheaper 5

Comprobar que funciona


'Module1.vb Imports System.Xml.Serialization Imports System.IO Module Module1 Sub Main() 'Set up product object. Dim p As New
clsProduct() p.Name = "Widget" p.Description = "Faster, better, cheaper" p.Qty = 5 'Serialize object to a text file. Dim
objStreamWriter As New StreamWriter("C:\Product.xml") Dim x As New XmlSerializer(p.GetType) x.Serialize(objStreamWriter, p)
objStreamWriter.Close() 'Deserialize text file to a new object. Dim objStreamReader As New StreamReader("C:\Product.xml") Dim p2 As
New clsProduct() p2 = x.Deserialize(objStreamReader) objStreamReader.Close() 'Display property values of the new product object.
Console.WriteLine(p2.Name) Console.WriteLine(p2.Description) Console.WriteLine(CStr(p2.Qty)) Console.ReadLine() End Sub End Module
'clsProduct.vb Imports System.Xml.Serialization Public Class clsProduct Private mstrName As String Private mstrDescription As String
Private mintQty As Integer Public Property Name() As String Get Name = mstrName End Get Set(ByVal Value As String) mstrName = Value
End Set End Property Public Property Description() As String Get Description = mstrDescription End Get Set(ByVal Value As String)
mstrDescription = Value End Set End Property <XmlElementAttribute(ElementName:="Quantity")> _ Public Property Qty() As Integer Get
Qty = mintQty End Get Set(ByVal Value As Integer) mintQty = Value End Set End Property End Class

Referencias
Para obtener ms informacin, consulte los siguientes sitios Web de Microsoft:
Ejemplos de serializacin XML
http://msdn.Microsoft.com/en-us/library/aa719523.aspx (http://msdn.microsoft.com/en-us/library/aa719523.aspx)
Miembros de la clase XmlSerializer
http://msdn2.Microsoft.com/en-us/library/System.Xml.Serialization.xmlserializer_members (vs.71).aspx (http://msdn2.microsoft.com/enus/library/system.xml.serialization.xmlserializer_members (vs.71).aspx)

Espacio de nombres System.Xml.Serialization


http://msdn.Microsoft.com/en-us/library/System.Xml.Serialization.aspx (http://msdn.microsoft.com/en-us/library/system.xml.serialization.aspx)
Caractersticas XML en ADO.NET
http://msdn.Microsoft.com/en-us/library/ms810298.aspx (http://msdn.microsoft.com/en-us/library/ms810298.aspx)

Propiedades
Id. de artculo: 316730 - ltima revisin: jueves, 21 de marzo de 2013 - Versin: 4.0
La informacin de este artculo se refiere a:
Microsoft Visual Basic .NET 2003 Standard Edition
Microsoft Visual Basic .NET 2002 Standard Edition
Microsoft .NET Framework 1.1
Microsoft .NET Framework 1.0

Palabras clave: kbhowtomaster kbmt KB316730 KbMtes


Traduccin automtica

IMPORTANTE: Este artculo ha sido traducido por un software de traduccin automtica de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano.
Microsoft le ofrece artculos traducidos por un traductor humano y artculos traducidos automticamente para que tenga acceso en su propio idioma a todos los artculos de nuestra
base de conocimientos (Knowledge Base). Sin embargo, los artculos traducidos automticamente pueden contener errores en el vocabulario, la sintaxis o la gramtica, como los que
un extranjero podra cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisin, error o dao ocasionado por una mala traduccin del contenido o como
consecuencia de su utilizacin por nuestros clientes. Microsoft suele actualizar el software de traduccin frecuentemente.

http://support.microsoft.com/kb/316730

2/3

11/6/2014

Cmo: Serializar y deserializar XML en Visual Basic .NET

Haga clic aqu para ver el artculo original (en ingls): 316730 (http://support.microsoft.com/kb/316730/en-us/ )

http://support.microsoft.com/kb/316730

3/3

Potrebbero piacerti anche