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

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

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

Работаю с xml. Его структура такова :
<data>
<item>
<id>182</id>
<art_url/>
<artist>Kevin Griffiths</artist>
<channel_id>182</channel_id>
<display_artist>Kevin Griffiths</display_artist>
<display_title>Cantona Kung Fu (Original Mix)</display_title>
<duration>425</duration>
<http://www.cyberforum.ru/images/>
<length>425</length>
<network_id>1</network_id>
<release/>
<started>1476543203</started>
<title>Cantona Kung Fu (Original Mix)</title>
<track>Kevin Griffiths - Cantona Kung Fu (Original Mix)</track>
<track_id>992885</track_id>
<type>track</type>
</item>
<item>
<id>67</id>
<art_url>
//static.audioaddict.com/d/d/2/1/a/b/dd21ab7deb18a4b5a00e68601c4dafa2.jpg
</art_url>
<artist>Sygnals</artist>
<channel_id>67</channel_id>
<display_artist>Sygnals</display_artist>
<display_title>Thymisis</display_title>
<duration>529</duration>
<images>
<default>
//cdn-images.audioaddict.com/d/d/2/1/a/b/dd21ab7deb18a4b5a00e68601c4dafa2.jpg{?size,height,width,quality,pad}
</default>
</images>
<length>529</length>
<network_id>1</network_id>
<release>Superluminal</release>
<started>1476542890</started>
<title>Thymisis</title>
<track>Sygnals - Thymisis</track>
<track_id>713905</track_id>
<type>track</type>
</item>
У меня в программе есть значение тега id надо достать значение тегa artist из того же item ,в котором данное значение тега id. Спасибо

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

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

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


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

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

15   голосов , оценка 4.133 из 5
Похожие ответы