XLINQ уже делает это.
.Element()
вернет null
, если нет элемента с таким именем.
Чтобы избежать повторяющихся нулевых проверок, используйте .Elements()
вместо:
invoiceDetail.PartNO = (string)
invoiceLine.Elements(ns + "Item")
.Elements(ns + "ItemID")
.Elements(ns + "ID")
.SingleOrDefault();
Каждый Elements()
вызов будет возвращать IEnumerable<XElement>
. Если нет соответствующих элементов, он вернет пустую последовательность, а остальная часть кода будет работать.
.SingleOrDefault()
преобразует конечную последовательность в один элемент или null
.
Приведение (string)
вызывает пользовательское явное преобразование, которое должно возвращать null
, если элемент был нулевым. Аналогичным образом вы можете привести непосредственно к базовым типам значений.