Jump to content

Recommended Posts

Posted

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

Posted

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.

Posted

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.

Matraquilhos para Android.

Gratuito na Play Store.

https://play.google.com/store/apps/details?id=pt.bca.matraquilhos

Posted

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"));

"Give a man a fish and he will eat for a day; Teach a man to fish and he will eat for a lifetime. The moral? READ THE MANUAL !"

Sign on a computer system consultant's desk

Posted

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

Posted

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

"Give a man a fish and he will eat for a day; Teach a man to fish and he will eat for a lifetime. The moral? READ THE MANUAL !"

Sign on a computer system consultant's desk

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.