2015-03-23 3 views
0

Когда я запускаю следующий код и прохожу через него с точкой останова и смотрю на temp, я вижу, что «Empty, Enumeration не дал никаких результатов», и MessageBox.Show никогда не срабатывает. Я пытаюсь тянуть все под сезон не = «1»C# Чтение XML с помощью XElement

XElement sitemap = XElement.Load(@"http://services.tvrage.com/feeds/episode_list.php?sid=" + this.showID); 
IEnumerable<XElement> temp = from el in sitemap.Elements("Season") 
             where (string)el.Attribute("no") == "1" 
             select el; 
foreach (XElement el in temp) 
{ 
    MessageBox.Show("found something"); 
} 

Это XML, который загружается: http://services.tvrage.com/feeds/episode_list.php?sid=6312

+0

Я не проверял тщательно, но я думаю, что 'sitemap.Descendants (« Season »)' сделал бы трюк. –

ответ

2

Вы ищете элементов называется Seasonнепосредственно под корневым элементом ... в то время как ваш XML выглядит следующим образом:

<Show> 
    <name>The X-Files</name> 
    <totalseasons>9</totalseasons> 
    <Episodelist> 
    <Season no="1"> 
     <episode> 
     ... 

Если вы хотите посмотреть на все дочерние элементы с заданным именем, используйте Descendants вместо от Elements. Это, безусловно, находит элементы в примере XML, который вы указали.

+0

Спасибо. Это сработало! – Jrow