如果属性在XDocument对象中不存在,如何设置该属性的默认值

时间:2014-12-27 14:52:30

标签: c# xml linq

我正在尝试加载xml文件。 我这样做了:

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节点中吗?

非常感谢

1 个答案:

答案 0 :(得分:4)

不需要属性:

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

不需要元素:

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