Bonjour, Je viens de plonger dans LINQ-XML il y a quelques jours et je voudrais savoir si je fais quelque chose de mal ou que ce n'est pas possible de le faire. J'ai cherché partout et il n'y a pas eu de problème lié au mien et je me suis un peu balancé maintenant.sélection des éléments enfants enfants avec linq
XML:
<catalog>
<product description="Cardigan Sweater" product_image="cardigan.jpg">
<catalog_item gender="Men's">
<item_number>QWZ5671</item_number>
<price>39.95</price>
<size description="Medium">
<color_swatch image="red_cardigan.jpg">Red</color_swatch>
<color_swatch image="burgundy_cardigan.jpg">Burgundy</color_swatch>
</size>
<size description="Large">
<color_swatch image="red_cardigan.jpg">Red</color_swatch>
<color_swatch image="burgundy_cardigan.jpg">Burgundy</color_swatch>
</size>
</catalog_item>
<catalog_item gender="Women's">
<item_number>RRX9856</item_number>
<price>42.50</price>
<size description="Small">
<color_swatch image="red_cardigan.jpg">Red</color_swatch>
<color_swatch image="navy_cardigan.jpg">Navy</color_swatch>
<color_swatch image="burgundy_cardigan.jpg">Burgundy</color_swatch>
</size>
<size description="Medium">
<color_swatch image="red_cardigan.jpg">Red</color_swatch>
<color_swatch image="navy_cardigan.jpg">Navy</color_swatch>
<color_swatch image="burgundy_cardigan.jpg">Burgundy</color_swatch>
<color_swatch image="black_cardigan.jpg">Black</color_swatch>
</size>
<size description="Large">
<color_swatch image="navy_cardigan.jpg">Navy</color_swatch>
<color_swatch image="black_cardigan.jpg">Black</color_swatch>
</size>
<size description="Extra Large">
<color_swatch image="burgundy_cardigan.jpg">Burgundy</color_swatch>
<color_swatch image="black_cardigan.jpg">Black</color_swatch>
</size>
</catalog_item>
et la requête:
var query =
from size in
(
from catalogItem in cardigan.Descendants("catalog_item")
where catalogItem.Attribute("gender").Value == "Men's"
select catalogItem.Descendants("size")
)
select size.Elements("color_swatch");
qui me fait essentiellement tous les color_swatch pour pour hommes mais j'ai essayé de voir si je peux obtenir tous les color_swatch pour les hommes seulement.
Merci d'avance.
Vous voulez dire 'size.Attribute', pas' size.Attributes'. – cdhowie
Merci, corrigé la faute de frappe –
Voir le problème est que la taille est un IEnumerable pas un XElement, donc il n'a pas de définition pour l'attribut. J'ai déjà essayé ceci :( –
David