NullReferenceException при парсинге XML файла C#

программирование C# xml

Собственно, ловится эксепшн. Подробности:
Например, возьмем эту ссылку:
http://api.chartlyrics.com/apiv1.asmx/SearchLyricDirect?artist=muse&song=starlight
На этой странице мы находим XML файл. Сама ссылка генерируется тут же и пихается в string xmlLink.

Отрывок кода:

var xmlLyrFile = new XmlDocument();
xmlLyricFile.Load(xmlLink);
string lyricString = null;
try{
lyricString = xmlLyrFile.DocumentElement.SelectSingleNode("/GetLyricResult/Lyric").InnerText; //ошибка
}
catch (System.NullReferenceException ex){
Console.WriteLine(ex.ToString());
}
return lyricString;

Код совсем простой. По ссылке грузим документ, находим элемент "Lyric" и считываем текст в стоку, которую отправляем затем дальше.

Ошибка System.NullReferenceException: object reference not set to an instance of an object. С xml в првый раз встретился, видимо что-то не так делаю.

Буду рад узнать решение/получить совет. Если есть вопросы, отвечу апдейтами вопроса.

Заранее спасибо,
~hlfrmn
Ответы:
.SelectSingleNode("/GetLyricResult/Lyric") возвращает null, так как нет узлов, соответствующих XPath выражению. Последующие обращение к .InnerText происходит по null ссылке, что естественно приводит к NullReferenceException.


11 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.