c# - Linq to XML - 解析 DateTime 时检查 null 元素

标签 c# .net linq-to-xml

假设我有以下 XML:

<Account>
        <AccountExpirationDate>6/1/2009</AccountExpirationDate>
</Account>

我想使用 LINQ to XML 将其解析为一个我将调用 Account 的对象:

public class Account {
    public DateTime? AccountExpirationDate { get; set; }
}

这是我尝试过的 C# 代码,但它不允许我使用 null:

var accountSettings = 
  from settings in templateXML.Descendants("Account")
  select new Account {
      AccountExpirationDate =   
         string.IsNullOrEmpty(settings.Element("AccountExpirationDate").Value) 
         ? DateTime.Parse(settings.Element("AccountExpirationDate").Value) 
         : null
  };

如果元素存在于 XML 中,有没有办法只为 AccountExpiration 分配一个日期?在我的业务逻辑中,该值为空是可以接受的。谢谢!

最佳答案

var accountSettings =
  from settings in templateXML.Descendants("Account")
  select new Account {
    AccountExpirationDate = 
      string.IsNullOrEmpty((string)settings.Element("AccountExpirationDate")) 
            ? (DateTime?)null
            : DateTime.Parse(settings.Element("AccountExpirationDate").Value) 
  };

关于c# - Linq to XML - 解析 DateTime 时检查 null 元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1076475/

相关文章:

c# - 如何仅在 ContinueWith 中出现未处理的异常时中断?

c# - 如何从 VS2015 中引用不同的 mscorlib.dll?

.net - 用于 Windows Server 事务/错误处理的服务总线 1.0

c# - 在 C# 中保持已编辑 XML 文件的缩进

c# - 如何让这个 LINQ to XML 查询更加优雅?

c# - 处理从 C++/MFC 应用程序中的 .NET dll 抛出的异常

c# - 如何编写单元测试以确定对象是否可以被垃圾回收?

c# - global.asax 和 global.asax.cs 有什么区别

c# - 如何使用 MongoDb .net 驱动程序获取集合中所有文档的几个特定字段

asp.net - 在 ASP.NET 站点中正确使用基于 xml 文件的存储作为数据库替代方案