No artigo de hoje mostraremos os XML Literals que permitem incorporar o XML diretamente no código e com isso, conseguir manipular mais facilmente este tipo de ficheiro. Os XML Literals estão disponíveis a partir do Visual Studio 2008, suportando a maioria da especificação Extensible Markup Language (XML) 1.0.
Vamos a um exemplo:
Abra o Visual Studio e crie um novo projeto:
Sub Main()
'XML
Dim bookList = _
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!-- Lista de livros e revistas -->
<library>
<books>
<book name="A Batalha do Apocalipse" author="Eduardo Espor"/>
<book name="Praticamente Inofensiva" author="Douglas Adams"/>
<book name="O último Reino" author="Bernard Cornwell"/>
</books>
<magazine>
<magazineName>"MSDN Magazine"</magazineName>
<magazineName>"Code Magazine"</magazineName>
</magazine>
</library>
'For each que irá percorrer o XML para listar todas as revistas,
'indicando o caminho da estrutura XML até o elemento pretendido
For Each m In From element In bookList.<library>.<magazine>.<magazineName>
Console.WriteLine(m.Value)
Next
'Sem a necessidade de listar todo caminho ao elemento pretendido, é possível utilizar o Descendants,
' que retorna todos os elementos descendentes que encontre na descrição especificada entre as chaves
For Each m In From element In bookList...<magazineName>
Console.WriteLine(m.Value)
Next
'Semelhante as revisto, para listar os livros é necessário indicar os atributos com @
For Each book In From element In bookList...<book>
Console.WriteLine("Livro: " & book.@name.ToString)
Console.WriteLine("Autor: " & book.@author.ToString)
'Linha de separação
Console.WriteLine(New String("-"c, 40))
Next
'Para uma pesquisa de informação utilizamos o LINQ to XML
'No exemplo estamos procurando todos os registros com a palavra "Reino"
Dim bookSearch = From b In bookList...<book> _
Where b.@name.ToString.Contains("Reino") _
Select b.@name, b.@author
For Each book In From element In bookSearch
Debug.WriteLine("Livro: " & book.name)
Debug.WriteLine("Autor: " & book.author)
' Linha de separação
Debug.WriteLine(New String("-"c, 40))
Next
'Salvando o XML da mémoria no disco
bookList.Save("c:temp\LivrosRevistas.xml")
End Sub
Fonte: Visual Basic em português
Comente e interaja!