J'essaie d'analyser les résultats de l'API YouTube. J'obtiens les résultats correctement comme une chaîne, mais je suis incapable de l'analyser correctement.Utilisation de LINQ to XML pour traiter XML dans plusieurs espaces de noms
J'ai suivi les suggestions sur un sujet précédent, mais je n'obtiens aucun résultat.
Mon exemple de code est:
string response = youtubeService.GetSearchResults(search.Term, "published", 1, 50);
XDocument xDoc = XDocument.Parse(response, LoadOptions.SetLineInfo);
var list = xDoc.Descendants("entry").ToList();
var entries = from entry in xDoc.Descendants("entry")
select new
{
Id = entry.Element("id").Value,
Categories = entry.Elements("category").Select(c => c.Value)
//Published = entry.Element("published").Value,
//Title = entry.Element("title").Value,
//AuthorName = entry.Element("author").Element("name").Value,
//Thumnail = entry.Element("media:group").Elements("media:thumnail").ToList().ElementAt(0)
};
foreach (var entry in entries)
{
// entry.Id and entry.Categories available here
}
Le problème est que les entrées a un compte de 0, même si le XDocument a clairement les valeurs valides.
La valeur de la variable de réponse (XML exemple) peut être vu ici: http://snipt.org/lWm
(Pour votre information: Le schéma youTube est répertorié ici: http://code.google.com/apis/youtube/2.0/developers_guide_protocol_understanding_video_feeds.html)
Quelqu'un peut-il me dire ce que je fais mal ici?
Votre premier problème était de ne pas afficher un exemple de l'échec XML. Je ne sais pas quel est votre deuxième problème, à cause de votre premier problème. –
Peut-être que votre deuxième problème est que vous n'avez pas défini de point d'arrêt dans la boucle foreach? Avez-vous essayé, ou avez-vous dépendu du débogueur? –
Je risque de deviner que la réponse est "namespaces xml".Avez-vous un exemple xml? –