Este artigo demonstra como utilizar um objecto de
DataSet para intercalar dois documentos XML.
DataSet objecto é fundamental para suporte desligado, distribuído cenários de dados com o ADO.NET. O
DataSet é uma representação residente em memória dos dados que fornece um modelo consistente e relacional programação independentemente da origem de dados. O
DataSet representa um conjunto completo de dados, incluindo tabelas relacionadas, constrangimentos e relações entre tabelas.
Requisitos
A lista seguinte descreve o hardware recomendado, software, infra-estrutura de rede e service packs que necessita:
- Microsoft Windows XP, Windows 2000 ou Windows NT 4.0 Service Pack 6a (SP6a)
- Microsoft Visual Studio .NET
Este artigo pressupõe que está familiarizado com os seguintes tópicos:
- Sintaxe do Visual Basic .NET
- Extensible Markup Language (XML)
Criar o ficheiro Books1.xml
- No menu Iniciar do Windows, clique em Executar , escreva Notepad.exe e clique em OK .
- Realce o código seguinte, clique com o botão direito do rato no código 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 ficheiro , clique em Guardar .
- Na caixa de diálogo Guardar como , na caixa de lista pendente Guardar com o tipo , clique em Todos os ficheiros . Na caixa de texto Nome do ficheiro , escreva Books1.xml e, em seguida, clique em Guardar .
Criar o ficheiro Books2.xml
- No bloco de notas, crie um novo ficheiro de texto chamado Books2.xml.
- Copie e cole o seguinte XML para 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 ficheiro , clique em Guardar .
- Na caixa de diálogo Guardar como , na caixa de lista pendente Guardar com o tipo , clique em Todos os ficheiros . Na caixa de texto Nome do ficheiro , escreva Books2.xml e, em seguida, clique em Guardar .
Passos para criar a aplicação do Visual Basic .NET
- Inicie o Visual Studio .NET e crie um novo projecto de aplicação de consola do Visual Basic.
- Adicione o seguinte código no início da janela Code:
- 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 a aplicação. Repare que a mensagem "Concluir a intercalação de documentos XML" é apresentada na janela da consola.
- Feche a janela da consola. Repare que o ficheiro Books.XML é criado no caminho especificado.
- Abra Books.XML. Repare que os dados da Books2.xml são anexados ao fim para Books1.xml.
Diferentes cenários de documento XML
Intercalar documentos XML que têm a mesma estrutura
O exemplo de Visual Basic .NET anterior demonstra a saída de documentos XML com a mesma estrutura.
Intercalar documentos XML com diferentes estruturas
- Abrir Books2.xml e substitua o XML com o XML seguinte:
<?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>
- Guarde Books2.xml.
- Execute novamente o projecto de Visual Basic. NET. Repare que os nós do segundo documento (Books2.xml) são acrescentados para o primeiro documento XML (Books1.xml).
Intercalar documentos XML com estrutura semelhante em que o segundo documento contém elementos adicionais
- Abrir Books2.xml e substitua o XML com o XML seguinte:
<?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>
- Guarde Books2.xml.
- Execute novamente o projecto de Visual Basic. NET. Repare que os nós do segundo documento são acrescentados para o primeiro documento XML.
Intercalar documentos XML com estrutura semelhante em que o segundo documento contém atributos
- Abrir Books2.xml e substitua o XML com o XML seguinte:
<?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>
- Guarde Books2.xml.
- Execute novamente o projecto de Visual Basic. NET. Repare que os nós do segundo documento são acrescentados para o primeiro documento XML e a estrutura é mesma que o primeiro documento XML.
Intercalar documentos XML com estrutura semelhante em que o primeiro documento contém atributos
- Modifique o código do Visual Basic da seguinte forma para que Books1.xml é anexado 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 projecto de Visual Basic. NET. Repare que o documento XML resultante acrescenta os nós de Books1.xml Books2.xml. Para além disso, repare que todos os nós livro contém o atributo "género".
Por este motivo, dependendo da estrutura do documento XML primeiro, o segundo documento XML é modificado para que o XML resultante mais significado.
Para obter informações adicionais, clique no número de artigo existente abaixo para visualizar o artigo na base de dados de conhecimento da Microsoft:
286817
(http://support.microsoft.com/kb/286817/EN-US/
)
COMO: Intercalar dados em dois documentos XML, o modelo de objecto do documento (DOM) de programação
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 revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes 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/
)