У меня есть документ XML, который выглядит следующим образом:нужно прочитать значение в XDocument на основе значения атрибута
<RESPONSES>
<RESPONSE STATUS="OK">
<ALBUM>
<URL TYPE="COVERART" SIZE="THUMBNAIL">http://akamai-b.cdn.cddbp.net/cds/2.0/cover/60AA/2DF9/B94B/72C8_thumbnail_front.jpg</URL>
<URL TYPE="ARTIST_BIOGRAPHY">http://web.content.cddbp.net/cds/2.0?id=6F64C8E01EA6253B&client=10395648&class=biography&type=text/plain&tag=02sq63myXqi8O9GLtyVrTB2Q0HTdtZEIU0LuGDlIoDRvQGTE2lkKnsdQ</URL>
</ALBUM>
</RESPONSE>
<RESPONSES>
Мне нужно получить значение URL CoverArt и ARTIST_BIOGRAPHY URL, поэтому мне нужно получить значение URL-адреса элемента, где атрибут TYPE = «COVERART» и значение URL-адреса элемента, где атрибут TYPE = «ARTIST_BIOGRAPHY», и я не могу понять, как это сделать (хотя я уверен, что это простой ответ ;-)
Я попытался как:
var albums = new List<Album>();
try
{
albums = (from item in inputDoc.Descendants("ALBUM")
select new Album
{
Biography = (string)item.Element("URL").Attribute("TYPE"),
и
CoverArt = (string)item.Element("URL").Attribute("COVERART")
}).ToList();
и ни дает мне то, что я ищу. Может кто-нибудь, пожалуйста, помогите мне !?
Спасибо, Дэвид. Это работает для Coverart, но для bio я получаю {«Последовательность не содержит соответствующего элемента»} \t System.Exception {System.InvalidOperationException}, и я знаю, что на самом деле есть био в наборе результатов. –
Я проверил это с небольшим фрагментом xml, который вы предоставили, и это сработало для меня. Можете ли вы дважды проверить, что вы разместили правильный xml? –
Спасибо Дэвиду - проблема была на моем конце - это был xml, что я кормил веб-сервис, который был испорчен. Спасибо за вашу помощь по этому поводу. –