Desenvolvimento - C#
Criando arquivo XML com Linq To XML
No artigo o autor apresenta a tecnologia Linq to xml e ensina gerar arquivos.
por Emerson JoseVamos abordar nesse artigo como trabalhar com arquivos XML utilizando Linq To XML, lembro a dificuldade que tinha para gerar esse tipo de arquivo.
Graças ao Linq To XML, fez economizar inúmeras linhas e também facilitou muito a abstração das informações existentes no arquivo, tema do próximo artigo.
No primeiro artigo dessa série sobre Linq To XML, vamos aprender como gerar arquivos XML, abaixo vou mostrar a estrutura proposta que vamos criar.
<item>
<pessoa name=”Emerson” idade=”20” />
<pessoa name=”Angelica” idade=”21” />
</item>
Para gerar a estrutura a cima, vamos utilizar o seguinte código.
public void GerarXML()
{
XDocument newXDoc = new XDocument();
Dictionary<string, int> elementos = new Dictionary<string, int>();
elementos.Add("Emerson", 20);
elementos.Add("Angelica", 21);
newXDoc.Add(NewElement(elementos));
newXDoc.Save("@D:\\DataTeste.xml");
}
public static XElement NewElement(IDictionary<string, int> param)
{
XElement items = new XElement("item");
foreach (var c in param)
{
items.Add(new XElement("pessoa",
new XAttribute("name", c.Key),
new XAttribute("idade", c.Value.ToString())
));
}
return items;
}
Definição: No exemplo acima, instanciamos um objeto do tipo XDocument e criamos uma nova instancia desse objeto “newXDoc “.
Após isso instanciamos objeto Dictionary que tem Key sendo string e Value um inteiro, vamos adicionar as pessoas nesse objeto e chamar newXDoc invocando o método Add,
Adicionando dentro o método “NewElement” recebendo como parâmetro Dictionary.
Quando invocado o método, nos criamos um objeto XElement com nome de item e fazemos um foreach varrendo dictionary e adicionando novos XElement no item retornando nossa estrutura pronta para ser salva.
Invocando método save do newXdoc, passando o diretório e nome que deseja salvar esse arquivo, quando executado é gerado um arquivo XML com a seguinte estrutura.
<?xml version="1.0" encoding="utf-8"?>
<item>
<pessoa name="Emerson" idade="20" />
<pessoa name="Angelica" idade="21" />
</item>
Pessoal, espero que tenham gostado e não deixem de visitar Programming in Csharp sempre com novas dicas.