• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Basic

XLINQ

6 mensagens neste tópico

Boas

ainda estou a tentar aprender Linq to XML, no entanto tenho uma duvida.

tenho um simples xml e quero acrescentar alguns campos numa determinada posição, por exemplo;

<root>
     <empregado>
              <nome>Antonio</nome>
     </empregado>
     <empregado>
              <nome>Jose</nome>
     </empregado>
     <empregado>
              <nome>Maria</nome>
     </empregado>
</root>

e quero que quando o nome seja igual a "Jose" então seja acrescentado mais alguns campos

<empregado>
      <nome>Antonio</nome>
      <morada>rua longe</nome> 
</empregado>

alguem tem alguma ideia ??

Obrigada

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

O LINQ (pelo menos até à data), foi desenvolvido para consultas pelo que não podes simplesmente fazer por exemplo um update com o LINQ para XML no entanto com o LINQ aplicar um filtro para aceder aos dados pretendidos e depois adicionar elementos.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Eu não percebi bem o q queres, mas se queres fazer um update a minha solução n vai dar.

Se queres inserir o xml todo de inicio, podes fazer a verificação em C#:

if(Nome == "Jose"){
     // Codigo em Linq com os campos todos
}
else{
    // Codigo em Linq com os campos necessarios
}

Isto talvez dê para fazer logo em Linq, mas ainda n explorei mto o linq para te dizer cm fazer isso.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Fiz directamente aqui não sei se funciona, mas deve ser algo do género.

tree.Descendants("empregado")
    .Single(e => e.Descendants("nome")
                  .Where(n => n.Value == "Jose")
                  .Count() == 1
           )
    .Add(new XElement("morada", "rua longe"));

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

humm estou a ver que com LINQ torna-se muito simples precorrer o xml, no entanto ainda estou com algumas duvidas :)

por exemplo :

<empregado>
          <nome>Antonio</nome>
          <empregado>
                    <nome>Jose</nome>
          </empregado>
          <empregado>
                    <nome>Maria</nome>
                    <empregado>
                               <nome>Jose</nome>
                    </empregado>
           </empregado>
</empregado> 

se eu tiver este xml e se quisere encontrar o empregado jose e acrescentar mais tag como no exemplo anterior, no entanto sei que ele se encontra dentro da empregada Maria -/Maria/Jose

como posso fazer isto para no final ter

...
<empregado>
          <nome>Maria</nome>
          <empregado>
                   <nome>Jose</nome>
                   <morada>rua longe</morada>                                
          </empregado>
</empregado>

desde já o muito obrigada

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Fazes a mesma coisa, simplesmente agora vais procurar primeiro pelas Maria's e depois em cada Maria vais procurar os Jose's...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora