Este artigo demonstra como usar um objeto
DataSet para mesclar dois documentos XML. O
DataSet objeto é fundamental para suporte desconectado, distribuído cenários de dados com o ADO.NET. O
DataSet é uma representação residente na memória dos dados que fornece um modelo de programação consistente, relacional independentemente da fonte de dados. O
DataSet representa um conjunto completo de dados, incluindo tabelas relacionadas, restrições e relacionamentos entre tabelas.
Requisitos
A lista a seguir descreve o hardware recomendado, software, infra-estrutura de rede e service packs que você precisa:
- Microsoft Windows XP, Windows 2000 ou Windows NT 4.0 Service Pack 6a (SP6a)
- Microsoft Visual Studio .NET
Este artigo pressupõe que você esteja familiarizado com os seguintes tópicos:
- Sintaxe do Visual Basic .NET
- Linguagem de marcação extensível (XML)
Criar o arquivo Books1.xml
- A partir do menu Iniciar , clique em Executar , digite Notepad.exe e, em seguida, clique em OK .
- Realce o código a seguir, clique o código com o botão direito do mouse e, em seguida, clique em Copiar . No bloco de notas, no menu Editar , clique em Colar .
<?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>
- No menu arquivo , clique em Salvar .
- Na caixa de diálogo Salvar como , na caixa de listagem drop-down Salvar como tipo , clique em Todos os arquivos . Na caixa de texto Nome do arquivo , digite Books1.xml e em seguida, clique em Salvar .
Criar o arquivo Books2.xml
- No bloco de notas, crie um novo arquivo de texto chamado Books2.xml.
- Copie e cole o seguinte XML no 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>
- No menu arquivo , clique em Salvar .
- Na caixa de diálogo Salvar como , na caixa de listagem drop-down Salvar como tipo , clique em Todos os arquivos . Na caixa de texto Nome do arquivo , digite Books2.xml e em seguida, clique em Salvar .
Passos para criar o aplicativo .NET Visual Basic
- Inicie o Visual Studio.NET e crie um novo projeto Visual Basic Console Application.
- Adicione o código a seguir na parte superior da janela código:
- Copie e cole o seguinte código no procedimento 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()
- Criar e executar o aplicativo. Observe que a mensagem "Concluída a mesclagem de documentos XML" é exibida na janela do console.
- Feche a janela Console. Observe que o arquivo Books.XML é criado no caminho especificado.
- Abra Books.XML. Observe que os dados de Books2.xml são acrescentados ao final para Books1.xml.
Diferentes cenários de documento XML
Mesclar documentos XML que têm a mesma estrutura
O exemplo Visual Basic .NET anterior demonstra a saída de documentos XML com a mesma estrutura.
Mesclar documentos XML que possuem diferentes estruturas
- Abra Books2.xml e substitua o XML com o seguinte 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>
- Salve Books2.xml.
- Execute novamente o projeto Visual Basic.NET. Observe que os nós de segundo documento (Books2.xml) são acrescentados ao documento XML (Books1.xml) primeiro.
Mesclar documentos XML com estrutura semelhante onde o segundo documento contém elementos adicionais
- Abra Books2.xml e substitua o XML com o seguinte 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>
- Salve Books2.xml.
- Execute novamente o projeto Visual Basic.NET. Observe que os nós de segundo documento estão anexados ao documento XML primeiro.
Mesclar documentos XML com estrutura semelhante onde o segundo documento contém atributos
- Abra Books2.xml e substitua o XML com o seguinte 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>
- Salve Books2.xml.
- Execute novamente o projeto Visual Basic.NET. Observe que os nós de segundo documento são acrescentados ao primeiro documento XML e a estrutura é igual ao primeiro documento XML.
Mesclar documentos XML com estrutura semelhante onde o primeiro documento contém atributos
- Modificar o código do Visual Basic da seguinte maneira para que Books1.xml é acrescentado ao 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()
- Execute novamente o projeto Visual Basic.NET. Observe que o documento XML resultante acrescenta os nós de Books1.xml Books2.xml. Além disso, observe que todos os nós catálogo contém o atributo "gênero".
Portanto, dependendo da estrutura do documento XML primeiro, segundo documento XML é modificado para que o XML resultante é mais significativo.
Para obter informações adicionais, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
286817
(http://support.microsoft.com/kb/286817/EN-US/
)
COMO: Mesclar dados em dois documentos XML por programação o modelo de objeto documento (DOM)
ID do artigo: 308066 - Última revisão: quinta-feira, 4 de setembro de 2003 - Revisão: 2.3
A informação contida neste artigo aplica-se 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
| kbmt kbhowtomaster KB308066 KbMtpt |
Tradução automáticaIMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo:
308066
(http://support.microsoft.com/kb/308066/en-us/
)