Voici l'extrait de code:LINQ to XML simple, attribut get de déclaration de noeud
XDocument themes = XDocument.Load(HttpContext.Current.Server.MapPath("~/Models/Themes.xml"));
string result = "";
var childType = from t in themes.Descendants()
where t.Attribute("name").Value.Equals(theme)
select new { value = t.Attribute("type").Value };
foreach (var t in childType) {
result += t.value;
}
return result;
et voici le XML:
<?xml version="1.0" encoding="utf-8" ?>
<themes>
<theme name="Agile">
<root type="Project">
<node type="Iteration" >
<node type="Story">
<node type="Task"/>
</node>
</node>
</root>
</theme>
<theme name="Release" >
<root type="Project">
<node type="Release">
<node type="Task" />
<node type="Defect" />
</node>
</root>
</theme>
</themes>
Qu'est-ce que je fais mal? Je continue d'obtenir une exception "objet non défini sur une instance d'un objet". Ce que j'essaye de retourner est le type du noeud choisi basé sur le type d'un noeud parent, c.-à-d., Si le thème est "Agile" et le noeud parent est "Project" alors la valeur de retour devrait être "Itération". C'est le résultat final mais je ne suis jamais allé aussi loin parce que je suis resté coincé avec ce que vous voyez ci-dessus.
J'ai édité ma réponse pour être en phase avec vos informations ajoutées. –