Tutorial C# - Linq to XML

Documentos relacionados
Tutorial C# - ADO.NET

ASP.NET Área Administrativa

Introdução ao C# (CSharp)

Mundo Arduino: Vamos começar a programar?

Tutorial C# Inserção de dados em MySQL

MongoDB: Instalar e configurar a BD NoSQL no Windows 10

Aprenda a configurar um servidor de DNS

MongoDB: Manipular a base de dados NoSQL no Windows 10

Desenvolvimento de Aplicações Móveis com HTML5

Monte um Servidor de DHCP no Windows 7

Tutorial C# - Delegates e Eventos...

Live Mesh - A rede de nós segundo a Microsoft

Aprenda a instalar o Windows 10 no VirtualBox

3 apps para fazer root ao seu android

O Windows desde... sempre! - Parte #0

Ajuda para recuperar ficheiros eliminados? Puran File Recovery

Dicas de VBA - Personalizar o Friso I

Windows Server 2008 Vamos criar um domínio

Tutorial Photoshop #3 Efeito de reflexo

A melhor forma de partilha entre o PC e o Android!

Windows: Pasta AppData para que serve?

Viber Chamadas Grátis a partir do seu iphone

PrivaZer, privacidade e manutenção na ordem do dia

5 Dicas: acabe com os problemas de armazenamento no Android

S2E no Android Mover aplicações da memória interna para SD

AOMEI Partition Assistant, uma forma gratuita de gerir partições

Sabe fazer backups do Windows 10? E recuperar ficheiros?

Partilha de ficheiros por rede entre Mac e Windows

Avira PC Cleaner, do alerta para a segurança

É simples e intuitivo instalar o novo Linux CentOS 7.0

Linux Caixa Mágica 12 - Instalação

BMLABEL MANUAL DO UTILIZADOR

Esqueceu uma palavra-passe? Use o browser para a recuperar!

Kodi: Como configurar o serviço de legendas

Collectorz Movie Collector, só para os amantes de Filmes e Séries!

Saiba como fazer Jailbreak no Windows RT

Nimbus - Configuração de um Servidor de Backup

Configurar e usar o Voltar ao meu Mac

Aprenda a instalar o Windows 8 no VirtualBox

Como utilizar o Histórico de Ficheiros no Windows 10

YouTube - 9 truques que tem de conhecer

Ganhem 1TB de armazenamento em cloud com o Mail.Ru

Proteja-se configurando bem o Windows Defender no Windows 10

Como criar um ISO do Windows 8 para posterior instalação?

TOP 10 - Editores de texto para Windows e Linux

Manual de Utilizador do Backoffice

3 formas para descarregar vídeos do YouTube para Mac

8 Dicas para gerir os Separadores no Safari

Crie a sua Wikipedia com o MediaWiki em 15 minutos

Projecto Deskmod Windows 7 Centrar ícones da Superbar

Uma das melhores alternativas à Adobe: Wondershare PDFelement

5 Aplicações que não necessita de instalar no Windows 8

Personalize a Prompt de comandos da Bash no Linux

SmartVoip Chamadas GRÁTIS do computador para telefone

Aprenda como fazer - Dual Boot: Windows 8 vs Linux

Deskmod no Windows 7 - Agora vai ser a doer!

Como criar um blog no Wordpress

Conheça 5 boas extensões para usar no Edge

5 / 5. Powered by TCPDF (

Aprenda a usar a Firewall do Windows 8 (Parte I)

PhotoDemon: editor de imagem rápido, poderoso e portátil

Como sincronizar contactos do icloud com o Gmail

GLPI Gestão total e gratuita do seu parque informático

Vamos transformar os seus Raspberry PI num cluster (Parte 2)

Transcrição:

Tutorial C# - Linq to XML Date : 19 de Maio de 2009 Olá a todos hoje vou-vos falar de Linq to XML. Já abordei num post anterior este tema mas mais especifico para Datasets. Neste tutorial vou-vos mostrar como podem interagir com ficheiros XML, para isso vamos criar uma pequena aplicação que vai permitir gerir uma base de dados de filmes. Neste tutorial: Vamos navegar, adicionar, editar e apagar elementos de um ficheiro XML através de LINQ, e como irão ver é muito simples e numa sintaxe muito intuitiva. Navegar: http://www.pplware.com Pplware 1 / 9

Para navegar por um ficheiro XML temos de o abrir primeiro. XElement Filmes = XElement.Load(caminho); Para vermos os elementos na nossa form utilizei uma treeview, vamos carregar todos os títulos provenientes do ficheiro XML, para isso fazemos uma query LINQ, var query = from Filme in Filmes.Elements("Filme") http://www.pplware.com Pplware 2 / 9

select Filme.Element("Titulo"); Carregamos a variável query com os dados do XML, ao encontrar um elemento Filme que é o pai vai retornar todos os Titulos. foreach (var filme in query) { TreeNode childnode = new TreeNode(filme.Value); node.nodes.add(childnode); } Para cada titulo adicionamos o seu Texto á treeview. Adicionar: Para adicionar temos de abrir o ficheiro novamente. E criamos um XELement, com a utilização de LINQ este processo ficou mais simples, é só irmos adicionando novos elementos ou atributos encadiados, neste exemplo criamos um novo filme em que abrimos a tag Filme no inicio e só fechamos no final para este se tornar o pai, os outros elementos são criados e logo fechados, para assim não conterem filhos. XElement novofilme = new XElement("Filme", // Começo do elemento Filme new XElement("Titulo", textbox5.text), // Adicionado o elemento Titulo http://www.pplware.com Pplware 3 / 9

new XElement("Rating", textbox6.text), // Adicionado o elemento Rating new XElement("Data", textbox4.text) // Adicionado o elemento Data ); // Fim do elemento Filme Por fim adicionamos este elemento Filme ao ficheiro. Filmes.Add(novoFilme); // Adicionamos o novo filme ao xml Filmes.Save(caminho); // Temos de gravar as alterações para o ficheiro Editar: Para editar o processo é muito semelhante, a única diferença é que em vez de ser do tipo var o elemento tem de ser do tipo IEnumerable para assim podermos aceder ás propriedados dos XElements do loop foreach. A query também sofre uma alteração, em que vamos comparar com uma clausula Where se o titulo do elemento é igual ao item que está seleccionado na treeview. where ((string)b.element("titulo")).equals(treeview1.selectednode.text) No loop como temos acesso ás propriedados do XElement vamos executar a seguinte http://www.pplware.com Pplware 4 / 9

instrução para alterar os valores. ex.setelementvalue("titulo", textbox1.text); Como sempre no final temos de gravar o ficheiro. Apagar: O método de apagar é muito semelhante ao editar em que temos de compara o valor do titulo com um node no ficheiro XML depois de encontrado esse valor fazemos um loop e usamos o método ex.element("titulo").parent.remove(); Com esta instrução apagamos o pai deste Titulo, ou seja, apagamos o filme e todos os seus filhos. Para aceder ás propriedades como disse anteriormente a variável da query não pode ser var http://www.pplware.com Pplware 5 / 9

mas sim um XElement. Navegação 2: Um dos comportamentos do programa é ao clicar num item da treeview ele popula umas textboxes com os valores desse filme, para fazer isso é muito simples. Abrimos o ficheiro como sempre. Depois na query a grande diferença é que adicionamos propriedades á variável var da query para assim podermos aceder a elas no foreach select new { Titulo = (string)b.element("titulo"), http://www.pplware.com Pplware 6 / 9

Rating = (string)b.element("rating"), Data = (string)b.element("data") }; Este pedaço de código vai tornar possível aceder ás propriedades da variável resultante da query, e também ficam disponíveis no intellisense. Depois no loop preenchemos as textboxes com os valores. foreach(var dados in Filme) // a var dados já tem as novas propriedades { textbox1.text = dados.titulo; textbox2.text = dados.rating; textbox3.text = dados.data; } Bom por hoje é tudo espero que tenham gostado. Como podem ver e já o referi num post anterior o Linq é uma Framework muito poderosa, simples e muito útil para tudo (quando digo tudo é mesmo tudo). http://www.pplware.com Pplware 7 / 9

Download: Código Linq to XML [110.59KB] Se tiverem alguma duvida ou sugestão sabem onde me encontrar. Boa programação Licença: Freeware Sistemas Operativos: Windows XP/Vista/Win7

Powered by TCPDF (www.tcpdf.org) Download: pplware Link to XML [32.69KB] Homepage: Peopleware http://www.pplware.com Pplware 9 / 9