J'ai un XElement XML comme:LINQ to XML supprimer l'élément où la valeur est nulle
<Play>
<Trick Lead="E" Win="S" TNum="1">S3.S2.S4.SA></Trick>
<Trick Lead="S" Win="N" TNum="2">DK.DA.D6.DQ></Trick>
..../...
<Trick Lead="" Win="" TNum="7"></Trick>
.../...
<Trick Lead="" Win="" TNum="13"></Trick>
</Play>
Afin de se débarrasser des nœuds Trick où la valeur est nulle, je l'ai écrit:
myXmlElement.<Play>.<Trick>.Where(Function(m) m.<Trick>.Value = "").Remove()
Ce qui fonctionne très bien ... En fait, ça marche beaucoup trop bien, puisque TOUS les noeuds de trick sont supprimés!
Qu'est-ce que je fais de mal? Existe-t-il une façon plus simple de procéder, sans expression lambda?
Je ne l'ai jamais vu 'linq', mais je me demande un peu à ce sujet partie: 'Value =" "'?. Ne devriez-vous pas le comparer à '" "', ne pas le mettre à "" "'? J'essaierais d'utiliser ceci: 'Value ==" "' (Je suis sûr que je me trompe). – Blender
Il n'y a pas de "==" dans Visual Basic, mais peut-être il y a ".Equals" ... Je vais essayer si je n'ai pas de réponse. D'ailleurs, si vous n'avez jamais vu Linq, pourquoi répondre à une question Linq? LOL. Re-outre: Vous devriez essayer, Linq rocks! –
Darn vous Visual Basic! – Blender