我在下面有以下代码:
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语句中删除了Birthday时,我得到了数据,所以我认为我的转换到目前为止肯定有问题。
我错过了什么吗?谢谢!
答案 0 :(得分:3)
使用XElement
to DateTime
conversion代替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();
答案 1 :(得分:0)
您可以使用Parse方法:
DateTime.Parse(client.Element("Birthday").Value).Date
或ParseExact方法,格式为dd / MM / yyyy
DateTime.ParseExact(client.Element("Birthday").Value, "d/M/yyyy", CultureInfo.InvariantCulture).Date;
或ParseExact方法,格式为MM / dd / yyyy
DateTime.ParseExact(client.Element("Birthday").Value, "M/d/yyyy", CultureInfo.InvariantCulture).Date;