Cómo combinar los datos de dos documentos XML mediante System.Xml mediante Visual C#.

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

En esta página

Resumen

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

Requisitos

La lista siguiente describe el hardware recomendado, software, infraestructura de red y los service packs que necesita:
  • Microsoft Windows XP, Windows 2000 o Windows NT 4.0 Service Pack 6a (SP6a)
  • Visual Studio de Microsoft .net
Este artículo se supone que está familiarizado con los temas siguientes:
  • Sintaxis de Visual C#.
  • Lenguaje de marcado extensible (XML)

Crear el archivo Books1.xml

  1. En el menú Inicio de Windows, haga clic en Ejecutar, tipo Notepad.exey, a continuación, haga clic en Aceptar.
  2. Resalte el código siguiente, haga clic 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>Jeanette, Dasha</author>
          <title>Quack the Duck</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 Guardar como tipo , haga clic en Todos los archivos. En el cuadro de texto Nombre de archivo , escriba Books1.Xmly, 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 en 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>Vinzovskaia, Irina</author>
          <title>Piano Fort A</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 Guardar como tipo , haga clic en Todos los archivos. En el cuadro de texto Nombre de archivo , escriba Books2.Xmly, a continuación, haga clic en Guardar.

Pasos para crear la aplicación de Visual C#.

  1. Inicie .net de Visual Studio y, a continuación, cree un nuevo proyecto de aplicación de consola de Visual C#.
  2. En la parte superior de la ventana de código, agregue el código siguiente:
    using System;
    using System.Xml;
    using System.IO;
    using System.Data ;
    					
  3. Copie y pegue el código siguiente en static void Main (string [] args):
    try
    	{
    		XmlTextReader xmlreader1 = new XmlTextReader("C:\\Books1.xml");
    		XmlTextReader xmlreader2 = new XmlTextReader("C:\\Books2.xml");
    
    		DataSet ds = new DataSet();
    		ds.ReadXml(xmlreader1);
    		DataSet ds2 = new DataSet();
    		ds2.ReadXml(xmlreader2);
    		ds.Merge(ds2);
    		ds.WriteXml("C:\\Books.xml");
    		Console.WriteLine("Completed merging XML documents");
    	}
    	catch (System.Exception ex)
    	{
    		Console.Write(ex.Message);
    	}
    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 consola.
  5. Cierre la ventana de consola. Observe que el archivo Books.xml se crea en la ruta de acceso que especifique.
  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

En el ejemplo de Visual C# .net anterior se muestra el resultado de los documentos XML con la misma estructura.

Combinar documentos XML que tienen distintas estructuras

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

Combinar documentos XML con estructura Similar donde el segundo documento contiene elementos adicionales

  1. Abra 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>Vinzovskaia, Irina</author>
          <title>Piano Fort A</title>
          <genre>Romance</genre>
          <price>4.95</price>
          <publish_date>2000-11-02</publish_date>
          <description>Two young pianists strike a chord when they fight a 
          pitched battle to stop the gnomes at a key base.</description>
       </book>
    </catalog>
    					
  2. Guardar Books2.xml.
  3. Ejecute de nuevo el proyecto de Visual C#.. Observe que los nodos desde el segundo documento se anexan al primer documento XML.

Combinar documentos XML con estructura Similar donde el segundo documento contiene los atributos

  1. Abra 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>Vinzovskaia, Irina</author>
          <title>Piano Fort A</title>
          <price>4.95</price>
       </book>
       <book id="bk108" genre="Horror">
          <author>de Dogg, Jazz</author>
          <title>Night of the Flea</title>
          <price>4.95</price>
       </book>
       </catalog>
    					
  2. Guardar Books2.xml.
  3. Ejecute de nuevo el proyecto de Visual C#.. Observe que los nodos desde el segundo documento se anexan al primer documento XML y la estructura es el misma que el primer documento XML.

Combinar documentos XML con estructura Similar donde el primer documento contiene los atributos

  1. Modifique el código de Visual C# manera para que Books1.xml se anexa a la Books2.xml:
    try
    	{
    		XmlTextReader xmlreader1 = new XmlTextReader("C:\\Books2.xml");
    		XmlTextReader xmlreader2 = new XmlTextReader("C:\\Books1.xml");
    
    		DataSet ds = new DataSet();
    		ds.ReadXml(xmlreader1);
    		DataSet ds2 = new DataSet();
    		ds2.ReadXml(xmlreader2);
    		ds.Merge(ds2);
    		ds.WriteXml("C:\\Books.xml");
    		Console.WriteLine("Completed merging XML documents");
    	}
    	catch (System.Exception ex)
    	{
    		Console.Write(ex.Message);
    	}
    Console.Read();	
    					
  2. Ejecute de nuevo el proyecto de Visual C#.. Observe que el documento XML resultante agrega los nodos de Books1.xml a Books2.xml. Además, observe que todos los nodos de libro contienen el atributo de "género".

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

Referencias

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

Propiedades

Id. de artículo: 311530 - Última revisión: jueves, 30 de agosto de 2012 - Versión: 1.0
La información de este artículo se refiere a:
  • Microsoft Visual C# .NET 2002 Standard Edition
  • Microsoft Visual C# .NET 2003 Standard Edition
  • Microsoft .NET Framework 1.0
  • Microsoft .NET Framework 1.1
Palabras clave: 
kbhowtomaster kbio kbsystemdata kbmt KB311530 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): 311530

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