Requete LINQ to XML [Résolu]

Signaler
Messages postés
1
Date d'inscription
mardi 16 juin 2009
Statut
Membre
Dernière intervention
14 septembre 2009
-
Messages postés
7
Date d'inscription
lundi 2 juillet 2007
Statut
Membre
Dernière intervention
15 septembre 2009
-
Bonjour!
je débute en LINQ to XML et aimerait l'appliquer sur le fichier suivant:






















































J'aimerais créer une requete pour récupérer certaines données. La clé est donc publicationID, le noeud est sélectionné selon sa valeur "adv-p-id".
Ensuite j'aimerais récupérer le bon noeud "issue", en connaissant sa valeur "adv-date", puis le noeud "class" en sonnaissant sa valeur "adv-c-id".

j'ai déjà le code suivant:


var adK4 = from c in xmlDoc.Descendants("publicationID")
where (string)c.Attribute("adv-value") == productionItem.pdMednum.ToString()
select new
{
publicationID = c.Attribute("k4-value").Value,

issueID = from c2 in c.Descendants("Issue")
where (string)c2.Attribute("adv-value") == productionItem.pdEdat.Value.ToShortDateString()
select c2.Attribute("k4-value").Value,

section = from c3 in c.Descendants("Class")
where (string)c3.Attribute("adv-value") == productionItem.pdRubstu1.Trim()
select c3.Attribute("k4-value").Value,

name = from c3 in c.Descendants("Class")
where (string)c3.Attribute("adv-value") == productionItem.pdRubstu1.Trim()
select c3.Attribute("name").Value



};



Sauf que ma variable adK4 est une collection.... Or n'est pas très logique, car la requête es sensée ne retourner qu'un seul élément! si quelqu'un pouvait m'aider...
d'avance merci!

1 réponse

Messages postés
7
Date d'inscription
lundi 2 juillet 2007
Statut
Membre
Dernière intervention
15 septembre 2009

En fait ta requete va forcement remonter une collection (linq ne peux pas savoir qu'il y a qu'un seul résultat avec tes critères)

Il faut que tu récupere ta valeurs avec :
adK4.First(); ou adK4.FirstOrDefault();