Я пытаюсь сделать XML-парсер для XML-документов, где есть некоторые необязательные атрибуты в узлах, и я ищу элегантный способ, как решить проблему с помощью «Ссылка на объект не установлен в экземпляр ". Я прочитал this тему, которая очень похожа и следующий код казался очень перспективным:Подстановка несуществующего атрибута XML со значением по умолчанию
string text = (string) foo.Element("Text") ?? "Default value";
Однако, когда я попытался осуществить это, «ссылка на объект не указывает на экземпляр» все еще произошло, и поэтому я Я ищу другое решение. Вот часть моего отчаянного усилия.
XML файл 1:
...
<Message id ="1" appendix = "abc" ></Message>
...
XML файл 2:
...
<Message id ="2" ></Message>
...
Мой анализатор (вызывается в цикле для каждого файла в папке):
public MyNode Parse(string file)
{
XmlDocument xDoc = new XmlDocument();
xDoc.Load(file);
MyNode node = new MyNode();
node.messageID = (string)xDoc.GetElementsByTagName("Message")[0].Attributes["id"].Value ?? "NULL";
node.appendix = (string)xDoc.GetElementsByTagName("Message")[0].Attributes["appendix"].Value ?? "NULL";
return node;
}
Могли бы вы выручи меня?
Что говорит отладчик null? –
["appendix"] Атрибут ... Я получаю исключение ссылки Null: ссылка объекта не установлена в экземпляр объекта. Или, может быть, значение атрибута, я не уверен. – Storm