Выбор узла XML по значению другого узла - C#

Узнай цену своей работы

Формулировка задачи:

Работаю с xml. Его структура такова :
Листинг программы
  1. <data>
  2. <item>
  3. <id>182</id>
  4. <art_url/>
  5. <artist>Kevin Griffiths</artist>
  6. <channel_id>182</channel_id>
  7. <display_artist>Kevin Griffiths</display_artist>
  8. <display_title>Cantona Kung Fu (Original Mix)</display_title>
  9. <duration>425</duration>
  10. <http://www.cyberforum.ru/images/>
  11. <length>425</length>
  12. <network_id>1</network_id>
  13. <release/>
  14. <started>1476543203</started>
  15. <title>Cantona Kung Fu (Original Mix)</title>
  16. <track>Kevin Griffiths - Cantona Kung Fu (Original Mix)</track>
  17. <track_id>992885</track_id>
  18. <type>track</type>
  19. </item>
  20. <item>
  21. <id>67</id>
  22. <art_url>
  23. //static.audioaddict.com/d/d/2/1/a/b/dd21ab7deb18a4b5a00e68601c4dafa2.jpg
  24. </art_url>
  25. <artist>Sygnals</artist>
  26. <channel_id>67</channel_id>
  27. <display_artist>Sygnals</display_artist>
  28. <display_title>Thymisis</display_title>
  29. <duration>529</duration>
  30. <images>
  31. <default>
  32. //cdn-images.audioaddict.com/d/d/2/1/a/b/dd21ab7deb18a4b5a00e68601c4dafa2.jpg{?size,height,width,quality,pad}
  33. </default>
  34. </images>
  35. <length>529</length>
  36. <network_id>1</network_id>
  37. <release>Superluminal</release>
  38. <started>1476542890</started>
  39. <title>Thymisis</title>
  40. <track>Sygnals - Thymisis</track>
  41. <track_id>713905</track_id>
  42. <type>track</type>
  43. </item>
У меня в программе есть значение тега id надо достать значение тегa artist из того же item ,в котором данное значение тега id. Спасибо

Решение задачи: «Выбор узла XML по значению другого узла»

textual
Листинг программы
  1. XElement xdata = XElement.Parse(xml);
  2. // Вариант раз
  3. string artist = xdata.XPathSelectElement("item[id[.='182']]/artist").Value.Dump();
  4.  
  5. // Вариант два
  6. string artist = xdata.Descendants("item")
  7.     .Single(x => x.Element("id").Value == "182")
  8.     .Element("artist").Value;

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 4.133 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы