XML Literals em VB.NET: Modificar, Inserir e Eliminar

Compartilhe este artigo!

Sobre o autor

Entre em contato...

Redação ForumWeb

Redação ForumWeb Equipe de desenvolvimento do ForumWeb.com.br, responsável pelas dicas e downloads do site.

Site do autor: http://www.forumweb.com.br

Indique este artigo

Para

Seu email

Mensagem

Fechar
Personalize sua mensagem

Código

Arquivos relacionados

  • Por enquanto, nenhum arquivo para download.

XML Literals em VB.NET: Modificar, Inserir e Eliminar

Quinta-Feira, 08 de Julho de 2010 às 10:34

Nos artigos anteriores vimos como criar um ficheiro XML, ler e pesquisar informações, com LINQ e Lambda Expressions. Agora vamos ver como modificar, inserir e eliminar um registro do ficheiro.

Iremos utilizar o seguinte ficheiro XML, que terá o nome myFile.xml:

<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<library>
   <books>
     <book name="O Rei do inverno" author="Bernard Cornwell"/>
     <book name="Praticamente Inofensiva" author="Douglas Adans"/>
     <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 ficheiro XML, depois de ler, é apenas necessário escolher o elemento que irá modificar e atribuir o novo valor. No exemplo abaixo estamos modificando no grupo “Magazine”, o primeiro registro “MSDN Magazine”, para outro valor:

Dim xmlFile = XDocument.Load(strFileName)
xmlFile...<magazineName>.Value = "Novo Valor"


Isto irá modificar o primeiro elemento que encontrar, uma vez que utilizamos a propriedade descendantes, que neste caso é a que pretendemos. Para modificar um elemento especifico, podemos uma vez mais recorrer a Lambda ou 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 = "O Sétimo Selo")
  element.@author = "Carlos Silva"


O exemplo acima indica o caminho completo, mas podemos utilizar a propriedade descendantes, para simplificar o código:

Dim xmlFile = XDocument.Load(strFileName)
xmlFile...<book>.Where(Function(f) _
f.@name = "O Sétimo Selo").@author = "Carlos Silva"


Inserir

Para inserirmos um novo elemento no ficheiro XML, é necessário criar um novo XElement, e depois adicioná-lo na posição correta. Podemos fazer isto de duas formas: criando um XElement e os XAtributes (se existirem):

Dim xmlFile = XDocument.Load(strFileName)
Dim element = New XElement("book", _
New XAttribute("name", "O símbolo perdido"), _
New XAttribute("author", "Dan Brown"))
Dim parent = xmlFile...<books>.FirstOrDefault()
parent.Add(element)


Ou diretamente no código:

Dim xmlFile = XDocument.Load(strFileName)
Dim element = <book name="O símbolo perdido" author="Dan Brown"/>
Dim parent = xmlFile...<books>.FirstOrDefault()
parent.Add(element)


Eliminar

Para eliminar um elemento é bastante simples:

Dim xmlFile = XDocument.Load(strFileName)
xmlFile...<magazineName>.Remove()


No código acima, estamos eliminando todos os elementos com a tag “magazineName”. Para eliminarmos apenas um elemento especifico, temos que indicá-lo:

Dim xmlFile = XDocument.Load(strFileName)
xmlFile...<book>.Where(Function(f) f.@author = "Douglas Adans").Remove()


Para que todos os comandos sejam efetivamos é necessário gravar as alterações efetuadas usando o comando:

xmlFile.Save(strFileName)


Com isto finalizamos nossa serie de artigos XML Literals.

Fonte: VBTuga

Qual a sua opinião?

Comente e interaja!



Ainda sem comentários, comente!