utiliser LINQ sur XmlNodeList

<X version="1.0">
  <Y id="abc" abv="a"/>
  <Y id="edf" abv="e"/>
</X>

Je veux sélectionner le nœud dont l'id est "abc", et le retour de son titre "un".

XmlDocument doc = new XmlDocument();
doc.Load(filePath);
XmlNodeList list = doc.SelectNodes("X/Y");
var node = list.Cast<XmlNode>().Where(node => node["id"].InnerText == "abc")
                               .Select(x=>x["abv"].InnerText);

Mais il ne fonctionne pas, nœud["id"].InnerText est toujours "". Pouvez-vous où est-elle un problème?

Merci beaucoup

Eh bien, votre nœud xml n'a pas de texte interne. <Y id="abc" abv="a">This is the inner text</y>. J'ai oublié la propriété exacte, mais c'est probablement quelque chose comme node.Attributes["id"].Value == "abc" et Select(x => x.Attributes["abv"].Value)
Merci, vraiment utile

OriginalL'auteur ZHE.ZHAO | 2015-12-01