Cómo: BETA: combinar datos de dos documentos XML utilizando System.XML con Visual Basic .NET

Seleccione idioma Seleccione idioma
Id. de artículo: 308066 - Ver los productos a los que se aplica este artículo
Expandir todo | Contraer todo

En esta página

Resumen

En este artículo muestra cómo utilizar un objeto DataSet para combinar dos documentos XML. El DataSet de objeto es esencial para admitir desconectados y distribuidos escenarios de datos con ADO.NET. El DataSet es una representación residente en memoria de datos que proporciona un modelo de programación relacional coherente independientemente del origen de datos. El DataSet representa un conjunto completo de datos, incluidas tablas relacionadas, restricciones y relaciones entre las tablas.

Requisitos

En la lista siguiente se describe el hardware, el software, la infraestructura de red y los service pack recomendados que se necesitarán:
  • Microsoft Windows XP, Windows 2000 o Windows NT 4.0 Service Pack 6a (SP6a)
  • Microsoft Visual Studio .NET
En este artículo se supone que está familiarizado con los temas siguientes:
  • Sintaxis de Visual Basic .NET
  • Lenguaje de marcado extensible (XML)

Crear el archivo Books1.xml

  1. En el menú Inicio , haga clic en Ejecutar , escriba Notepad.exe y, a continuación, haga clic en Aceptar .
  2. Resalte el código siguiente, haga clic con el botón secundario del mouse en el código y a continuación, haga clic en Copiar . En el Bloc de notas, en el menú Edición , haga clic en Pegar .
    <?xml version="1.0"?>
    <catalog>
       <book id="bk101">
          <author>Gambardella, Matthew</author>
          <title>XML Developer's Guide</title>
          <genre>Computer</genre>
          <price>44.95</price>
       </book>
       <book id="bk102">
          <author>Ralls, Kim</author>
          <title>Midnight Rain</title>
          <genre>Fantasy</genre>
          <price>5.95</price>
       </book>
    </catalog>
    					
  3. En el menú archivo , haga clic en Guardar .
  4. En el cuadro de diálogo Guardar como , en el cuadro de lista desplegable Tipo de guardar , haga clic en Todos los archivos . En el cuadro de texto Nombre de archivo , escriba Books1.xml y a continuación, haga clic en Guardar .

Crear el archivo Books2.xml

  1. En el Bloc de notas, cree un nuevo archivo de texto denominado Books2.xml.
  2. Copie y pegue el siguiente código XML Books2.xml:
    <?xml version="1.0"?>
    <catalog>
    <book id="bk106">
          <author>Randall, Cynthia</author>
          <title>Lover Birds</title>
          <genre>Romance</genre>
          <price>4.95</price>
       </book>
       <book id="bk107">
          <author>Thurman, Paula</author>
          <title>Splish Splash</title>
          <genre>Romance</genre>
          <price>4.95</price>
       </book>
    </catalog>
    					
  3. En el menú archivo , haga clic en Guardar .
  4. En el cuadro de diálogo Guardar como , en el cuadro de lista desplegable Tipo de guardar , haga clic en Todos los archivos . En el cuadro de texto Nombre de archivo , escriba Books2.xml y a continuación, haga clic en Guardar .

Pasos para crear la aplicación de Visual Basic .NET

  1. Inicie Visual Studio .NET y cree un nuevo proyecto de aplicación de consola de Visual Basic.
  2. Agregue el código siguiente al principio de la ventana código:
    Imports System.Xml
    					
  3. Copie y pegue el código siguiente en el procedimiento Sub Main :
            Dim xmlreader1 As New XmlTextReader("C:\Books1.xml")
    
            Dim xmlreader2 As New XmlTextReader("C:\Books2.xml")
    
            Dim ds1 As New DataSet()
            Try
                ds1.ReadXml(xmlreader1)
    
                Dim ds2 As New DataSet()
                ds2.ReadXml(xmlreader2)
    
                ds1.Merge(ds2)
                ds1.WriteXml("C:\Books.xml", XmlWriteMode.IgnoreSchema)
                Console.WriteLine("Completed merging XML documents")
            Catch ex As Exception
                Console.WriteLine(ex.Message)
            End Try
            Console.Read()
    					
  4. Genere y ejecute la aplicación. Observe que aparece el mensaje "Completar la combinación de documentos XML" en la ventana de la consola.
  5. Cierre la ventana de consola. Observe que se crea el archivo Books.XML en la ruta de acceso especificada.
  6. Abra el archivo Books.Xml. Observe que los datos de Books2.xml se anexan al final para Books1.xml.

Diferentes escenarios de documentos XML

Combinar documentos XML que tienen la misma estructura

El ejemplo de Visual Basic .NET anterior muestra el resultado de documentos XML con la misma estructura.

Combinar documentos XML que tienen distintas estructuras

  1. Abrir Books2.xml y reemplace el código XML con el siguiente código XML:
    <?xml version="1.0" ?>
    <SampleData>
    <Customer>
              <CustomerName>Bill Gates</CustomerName>
              <PricePerUnit>5.95</PricePerUnit>
              <ClosingDate>2001-12-16</ClosingDate>
    </Customer>
    <Customer>
              <CustomerName>Bill Gates</CustomerName>
              <PricePerUnit>5.95</PricePerUnit>
              <ClosingDate>2001-12-16</ClosingDate>
    </Customer>
    </SampleData>
    					
  2. Guardar Books2.xml.
  3. Ejecute de nuevo el proyecto de Visual Basic.NET. Observe que los nodos del segundo documento (Books2.xml) se anexan del primer documento XML (Books1.xml).

Combinar documentos XML con estructura similar que Second documento contiene elementos adicionales

  1. Abrir Books2.xml y reemplace el código XML con el siguiente código XML:
    <?xml version="1.0"?>
    <catalog>
    <book id="bk106">
          <author>Randall, Cynthia</author>
          <title>Lover Birds</title>
          <genre>Romance</genre>
          <price>4.95</price>
          <publish_date>2000-09-02</publish_date>
          <description>When Carla meets Paul at an ornithology 
          conference, tempers fly as feathers get ruffled.</description>
       </book>
       <book id="bk107">
          <author>Thurman, Paula</author>
          <title>Splish Splash</title>
          <genre>Romance</genre>
          <price>4.95</price>
          <publish_date>2000-11-02</publish_date>
          <description>A deep-sea diver finds true love twenty 
          thousand leagues beneath the sea.</description>
       </book>
    </catalog>
    					
  2. Guardar Books2.xml.
  3. Ejecute de nuevo el proyecto de Visual Basic.NET. Observe que los nodos del segundo documento se anexan del primer documento XML.

Combinar documentos XML con estructura similar que Second documento contiene atributos

  1. Abrir Books2.xml y reemplace el código XML con el siguiente código XML:
    <?xml version="1.0"?>
    <catalog>
    <book id="bk106" genre="Romance">
          <author>Randall, Cynthia</author>
          <title>Lover Birds</title>
          <price>4.95</price>
       </book>
       <book id="bk107" genre="Romance">
          <author>Thurman, Paula</author>
          <title>Splish Splash</title>
          <price>4.95</price>
       </book>
       <book id="bk108" genre="Horror">
          <author>Knorr, Stefan</author>
          <title>Creepy Crawlies</title>
          <price>4.95</price>
       </book>
       </catalog>
    					
  2. Guardar Books2.xml.
  3. Ejecute de nuevo el proyecto de Visual Basic.NET. Observe que los nodos del segundo documento se anexan del primer documento XML y la estructura es igual que el primer documento XML.

Combinar documentos XML con estructura similar que el primer documento contiene atributos

  1. Modifique el código de Visual Basic manera para que Books1.xml se anexa a Books2.xml:
            Dim xmlreader1 As New XmlTextReader("C:\Books2.xml")
    
            Dim xmlreader2 As New XmlTextReader("C:\Books1.xml")
    
            Dim ds1 As New DataSet()
            Try
                ds1.ReadXml(xmlreader1)
    
                Dim ds2 As New DataSet()
                ds2.ReadXml(xmlreader2)
    
                ds1.Merge(ds2)
                ds1.WriteXml("C:\Books.xml", XmlWriteMode.IgnoreSchema)
                Console.WriteLine("Completed merging XML documents")
            Catch ex As Exception
                Console.WriteLine(ex.Message)
            End Try
            Console.Read()
    					
  2. Ejecute de nuevo el proyecto de Visual Basic.NET. Observe que el documento XML resultante agrega los nodos Books1.xml Books2.xml. Además, observe que todos los nodos libreta contienen el atributo "género".

    Por lo tanto, dependiendo de la estructura del primer documento XML, el segundo documento XML se modifica para que el XML resultante es más significativo.

Referencias

Para obtener información adicional, haga clic en el número de artículo siguiente para ver el artículo en Microsoft Knowledge Base:
286817Cómo: Combinar datos en dos documentos XML mediante programación el modelo de objetos de documento (DOM)

Propiedades

Id. de artículo: 308066 - Última revisión: jueves, 04 de septiembre de 2003 - Versión: 2.3
La información de este artículo se refiere a:
  • Microsoft Visual Basic .NET 2002 Standard Edition
  • Microsoft Visual Basic .NET 2003 Standard Edition
  • Microsoft .NET Framework 1.0
  • Microsoft .NET Framework 1.1
Palabras clave: 
kbmt kbhowtomaster KB308066 KbMtes
Traducción automática
IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.
Haga clic aquí para ver el artículo original (en inglés): 308066

Enviar comentarios

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com