Я использую цепочку обращений к методу XElement.Element()
, чтобы детализировать XML-документ и извлечь значение атрибута:
XElement root = ...;
XNamespace ns = "...";
var firstName =
root
.Element(ns + "Employee")
.Element(ns + "Identity")
.Element(ns + "Name")
.Attribute(ns + "FirstName");
Однако, поскольку входящий документ не был проверен схемой, возможно, что искаженный документ вызовет NullReferenceException
, если какой-либо из ожидаемых промежуточных элементов не существует.
Есть ли способ избежать этого риска при сохранении краткости кода?
Я могу обернуть приведенный выше код в обработчик для NullReferenceException
, однако это кажется неправильным и также не будет конкретно указывать, где произошел сбой. Создание информационного сообщения об ошибке может быть ручным, утомительным, подверженным ошибкам и опасным для обслуживания.
Должен ли я вместо этого использовать XPath , чтобы я мог проверить нулевой возврат и затем легко создать сообщение об ошибке, указывающее, что выражение XPath не может быть разрешено?