Ir para conteúdo

POWERED BY:

Arquivado

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

RSS iMasters

[Resolvido] XML Literals - Parte 04 (Modificar, Inserir e Eliminar)

Recommended Posts

Até o momento, este é o último artigo sobre XML Literals. Os artigos anteriores mostraram diversas coisas importantes, como por exemplo, criar um arquivo XML, ler e pesquisar informação (usando LINQ e Lambda Expressions) e a utilização de embedded expressions, mas até agora ainda não falamos de alguns pontos essenciais para a manipulação desse tipo de arquivos: modificação, inserção e eliminação.

 

Neste artigo, será mostrado como fazer essas operações com base no seguinte arquivo XML, que terá o nome 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>

Modificar

Para modificar um arquivo XML - após a leitura, é apenas necessário escolher o elemento a modificar e atribuir um novo valor. De acordo com o arquivo base, e para alterar no grupo Magazine de MSDN Magazine para outro valor, podíamos fazer:

 

Dim xmlFile = XDocument.Load(strFileName)

xmlFile...<magazineName>.Value = "Novo Valor"Isso vai modificar o primeiro elemento que encontrar, uma vez que utilizamos a propriedade descendente, que, neste caso, é a que pretendemos. Para modificar um elemento especifico, podemos uma vez mais recorrer a Lambda ou a LINQ e selecionar apenas esse, como por exemplo, modificar um atributo no grupo books.

 

Dim xmlFile = XDocument.Load(strFileName)

Dim element = xmlFile.<library>.<books>.<book>.Where(Function(f) _

f.@name = "Equador")

element.@author = "Jorge Paulino"Esse exemplo indica o caminho completo, mas podemos, mais uma vez, usar propriedade descendentes, simplificando o código (apenas em duas linhas):

 

Dim xmlFile = XDocument.Load(strFileName)

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

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

Inserir

Para inserirmos um novo elemento no arquivo XML, é necessário construir o novo XElement, e depois adiciona-lo à posição correta. Podemos fazer isso pelo menos de duas formas: criando um XElement e, em casos respectivos, XAtributes:

 

Dim xmlFile = XDocument.Load(strFileName)

Dim element = New XElement("book", _

New XAttribute("name", "XML Literals"), _

New XAttribute("author", "Jorge Paulino"))

Dim parent = xmlFile...<books>.FirstOrDefault()

parent.Add(element)Ou diretamente no código:

 

Dim xmlFile = XDocument.Load(strFileName)

Dim element = <book name="XML Literals" author="Jorge Paulino"/>

Dim parent = xmlFile...<books>.FirstOrDefault()

parent.Add(element)Nesse segundo exemplo, e caso queiramos substituir o valor dos atributos por uma variável, podemos usar Embedded Expressions, utilizando as tags <%= %>, como já explicado num artigo anterior.

 

 

Eliminar

Eliminar um elemento é bastante simples e semelhante à modificação.

 

Dim xmlFile = XDocument.Load(strFileName)

xmlFile...<magazineName>.Remove()Esse exemplo mostra como remover os elementos com a tag magazineName. Mas atenção: esse exemplo elimina todos os elementos com a tag indicada. Para apagarmos apenas um elemento especifico, temos de indicar qual.

 

Dim xmlFile = XDocument.Load(strFileName)

xmlFile...<book>.Where(Function(f) f.@author = "Stephenie Meyer").Remove()Em todos os exemplos mostrados, é necessário gravar as alterações efetuadas, usando simplesmente:

 

xmlFile.Save(strFileName)Por enquanto é isso. Espero que esses exemplos de XML Literals, em conjunto com Lambda e LINQ, possam ajudar com uma mais fácil utilização de arquivos XML.

 

Participe e contribua com comentários, analise esta série de artigos e deixe suas impressões.

 

Até a próxima!

 

hospedagem2-300x250.jpg

 

http://imasters.com.br/artigo/19715/dotnet/xml-literals-parte-04-modificar-inserir-e-eliminar

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.