2014-12-27 2 views
1

Я пытаюсь загрузить XML-файл. Я сделал это:Как установить значение по умолчанию для атрибута, если оно не существует в объекте XDocument

from e in XDocument.Load(stream).Root.Elements("cust") 
          select new Customer 
          { 
           MemeberID = (int)e.Attribute("custid"), 
           CustomerID = (int)e.Attribute("custid"), 
           FirstName = (string)e.Attribute("fname"), 
           LastName = (string)e.Attribute("lname"), 
           ShowsNumber = (int)e.Attribute("count_noshow"), 
           VisitNumber = (int)e.Attribute("count_resos"), 
           Cancellation = (int)e.Attribute("count_cancel"), 
           MobileNumber = (string)e.Element("phone").Attribute("phonenumber") 
          }) 

даже вещь работало хорошо, но теперь у меня есть ситуации, в которых XML-документ не является необходимостью иметь атрибут mobilenuber. , можно ли установить значение по умолчанию для этого мобильного номера, если оно не было в узле xml?

большое спасибо

ответ

4

атрибутов не требуется:

MobileNumber = (string)e.Element("phone").Attribute("phonenumber") ?? defaultValue 

Элемент не требуется:

MobileNumber = e.Element("phone") != null ? (string)e.Element("phone").Attribute("phonenumber") : defaultValue 
+0

что не neceessary работы, becaues элемент "телефон", возможно, не будет там, так что я получил исключение: «Ссылка на объект не установлена ​​в экземпляр объекта.» –

+0

Вы сказали, что необязательно иметь атрибут. Теперь нет необходимости иметь этот элемент? Изменить: исправлено для необязательного элемента XML – supertopi

+0

спасибо .......................... –

Смежные вопросы