1

我有以下代码:

XDocument xmldocument = XDocument.Load(xmlfile);
List<Client> clients = (from client in xmldocument.Element("Clients").Elements("Client")
                       select new Client
                       {
                             Name = client.Element("Name").Value,
                             Birthday = Convert.ToDateTime(client.Element("Birthday").Value)
                       }).ToList();

这是我的xml:

 <Clients>
 <Client>
      <Name>Firstname Lastname</Name>
      <Birthday>01/01/1991</Birthday>
 </Client>
 </Clients>

我的问题是每当我尝试运行代码时都会收到空引用错误。但是当我从 linq 语句中删除生日时,我得到了数据,所以我认为我转换为日期时一定有问题。

我在这里错过了什么吗?谢谢!

4

2 回答 2

3

用于XElement转换DateTime不是Convert.ToDateTime

XDocument xmldocument = XDocument.Load(xmlfile);
List<Client> clients = (from client in xmldocument.Element("Clients").Elements("Client")
                       select new Client
                       {
                             Name = (string)client.Element("Name"),
                             Birthday = (DateTime)client.Element("Birthday")
                       }).ToList();
于 2013-07-09T07:38:41.513 回答
0

您可以使用 Parse 方法:

DateTime.Parse(client.Element("Birthday").Value).Date

或格式为 dd/MM/yyyy 的 ParseExact 方法

DateTime.ParseExact(client.Element("Birthday").Value, "d/M/yyyy", CultureInfo.InvariantCulture).Date;

或格式为 MM/dd/yyyy 的 ParseExact 方法

DateTime.ParseExact(client.Element("Birthday").Value, "M/d/yyyy", CultureInfo.InvariantCulture).Date;
于 2013-07-09T07:39:44.387 回答