Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

RSS iMasters

[Resolvido] XML Literals - Parte 03 (leitura de dados)

Recommended Posts

Este é o terceiro artigo sobre XML Literals, depois de uma introdução e de falarmos de Embedded Expressions. Neste, iremos falar sobre a leitura de informação de um arquivo XML.

 

Um dos benefícios do uso de XML Literals é a facilidade de ler informação e, com isso, melhorar o código e reduzir o tempo de desenvolvimento. Existem algumas formas de ler informação, como por exemplo LINQ ou Lambda Expressions, e como num artigo anterior já foi referido alguma coisa sobre LINQ, neste artigo será apenas utilizado Lambda.

 

Estes métodos de pesquisa serão a base para modificar dados, apagar ou inserir novos elementos, mas isso será mostrado brevemente.

 

Arquivo: myFile.xml

 

 

<?xml version="1.0" encoding="utf-8" standalone="yes" ?>

<!--Lista de livros e revistas >

<library>

<books>

<book name="Crepúsculo"author="Stephenie Meyer" />

<book name="Equador"author="Miguel S. Tavares" />

<book name="O Sétimo Selo"author="José R. dos Santos" />

</books>

<magazine>

<magazineName>MSDN Magazine</magazineName>

<magazineName>Code Magazine</magazineName>

</magazine>

</library>

A leitura de um arquivo começa sempre pela sua leitura para uma variável, e para isso utilizamos um XDocument. Depois, mediante o tipo de informação que queremos pesquisar/ler, utilizam-se diferentes métodos.

 

Nota: O nome do arquivo icheiro está guardado na variável strFileName

 

 

Dim strFileName As String = "d:myFile.xml"

Uma leitura simples de um elemento, por exemplo magazineName, será feita da seguinte forma:

 

 

Dim xmlFile = XDocument.Load(strFileName)

Debug.WriteLine(xmlFile...<magazineName>.Value)

Tão simples com isso! Este método utiliza a propriedade descendants, que irá procurar todos os elementos que tenham a tag indicada.

 

O resultado, na Immediate Window será MSDN Magazine, ou seja, o primeiro elemento que encontrar. Mas podemos também procurar por um valor nos elementos com a mesma tag, neste caso 2, utilizando, por exemplo, Lambda.

 

 

Dim xmlFile = XDocument.Load(strFileName)

Debug.WriteLine(xmlFile...<magazineName>.Where(Function(f) _

f.Value = "Code Magazine").Value)

Para mostrar um atributo da categoria, o método é semelhante. Desta vez, como se trata de um atributo, é usado a @, seguida do nome do atributo.

 

 

Dim xmlFile = XDocument.Load(strFileName)

Debug.WriteLine(xmlFile...<book>.@author)

Mas isso irá mostrar apenas o primeiro autor, do primeiro elemento. E se quisermos o nome do autor do livro Equador? Podemos utilizar uma vez mais Lambda.

 

 

Dim xmlFile = XDocument.Load(strFileName)

Debug.WriteLine(xmlFile...<book>.Where(Function(f) _

f.@name = "Equador").@author)

Dessa forma, pesquisamos o elemento cujo atributo name é igual a Equador, e mostramos o nome do author.

 

Estes são mais alguns exemplos que mostram como é simples ler informação de um arquivo XML usando XML Literals!

 

 

 

http://imasters.com.br/artigo/19602/dotnet/xml-literals-parte-03-leitura-de-dados

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.