Je dispose d'un fichier de mappage XML qui ressemble à ceciLINQ to XML, sélectionnez tous les attributs et leurs valeurs pour un noeud donné
<colourMappings>
<model name="modelX">
<mapping colour="White" configCode="1"></mapping>
<mapping colour="Aluminium" configCode="2"></mapping>
<mapping colour="Black" configCode="3"></mapping>
<mapping colour="Blue" configCode="4"></mapping>
<mapping colour="White Pearl" configCode="5"></mapping>
<mapping colour="Graphite" configCode="6"></mapping>
<mapping colour="Gunmetal" configCode="7"></mapping>
<mapping colour="Indigo" configCode="8"></mapping>
<mapping colour="Red" configCode="9"></mapping>
</model>
<model name="modelY">
<mapping colour="White" configCode="1" stConfigCode= "xx" dgConfigCode="hj"></mapping>
<mapping colour="Aluminium" configCode="2" stConfigCode= "xy" dgConfigCode="gh"></mapping>
<mapping colour="Black" configCode="3" stConfigCode= "xt" dgConfigCode="fg"></mapping>
<mapping colour="Blue" configCode="4" stConfigCode= "sd" dgConfigCode="fg"></mapping>
<mapping colour="White Pearl" configCode="5" stConfigCode= "df" dgConfigCode="df"></mapping>
<mapping colour="Graphite" configCode="6" stConfigCode= "xc" dgConfigCode="df"></mapping>
<mapping colour="Gunmetal" configCode="7" stConfigCode= "cv" dgConfigCode="cv"></mapping>
<mapping colour="Indigo" configCode="8" stConfigCode= "zx" dgConfigCode="vb"></mapping>
<mapping colour="Red" configCode="9" stConfigCode= "fg" dgConfigCode="cv"></mapping>
</model>
</colourMappings>
Je veux être en mesure de tirer tous les attributs et leurs valeurs données un nom de modèle et la couleur
par exemple
donné MODELY et blanc, je voudrais obtenir configCode = "1" stConfigCode = "xx" dgConfigCode = "hj" Cela pourrait être dans une structure - tableau, liste, quelle que soit
J'ai été en utilisant Linq en XML, mais ne peut pas obtenir la syntaxe correcte
XDocument mappings = XDocument.Load(@"D:\colour_mappings.xml");
var q = from c in mappings.Descendants("model")
where (string)c.Attribute("name") == "modelY" && (string)c.Descendants("mapping").Attributes("colour").FirstOrDefault() == "White"
select c.Attributes();
quelqu'un sait comment faire cela?
Heureux d'utiliser toute méthode, ne doit pas nécessairement être Linq
merci - ce n'est pas exactement ce dont j'ai besoin cependant. Votre seul retourne tous les attributs de chaque cartographie Je veux juste les attributs pour le mappage simple dans ModelY qui a une couleur de blanc Décidé de le faire comme une requête en deux étapes - voir ci-dessous – ChrisCa
@Christo Fur: Désolé, mon erreur , juste mis à jour le code de sorte qu'il devrait fonctionner maintenant :) –
merci - Je suis arrivé à la même conclusion que vous et l'avez fait en 2 étapes – ChrisCa