XDocument 并读取 xsi:nil="true"给出“字符串未被识别为有效的日期时间”
愉快地阅读 XML,
var q2 = from c in xmlDoc.Descendants("Ticket")
select new
{ Responded_Date = (DateTime)c.Element("Responded_Date") }
但是当标签为时,
<Responded_Date xsi:nil="true" />
我得到“字符串未被识别为有效的日期时间”。我不想使用空合并运算符,而只是将空值插入到数据表中
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
将 Responded_Date 声明为可为空的日期时间。
如果缺少
元素,将返回 null 值。如果它是无效日期,您将收到 FormatException - “字符串未被识别为有效的日期时间。”。
将导致 FormatException。Declare Responded_Date as a nullable datetime.
If the
<Responded_Date>
element is missing, a null value will be returned.If it's an invalid date, you will get a FormatException - "String was not recognized as a valid DateTime.".
<Responded_Date xsi:nil="true" />
will cause a FormatException.Linq to XML 本身不支持
xsi:nil
,另请参阅此 msdn 社交链接。作为解决方法,您必须手动检查,然后为日期分配一些默认值(即DateTime.MaxValue
),或者使用类投影而不是匿名类型并将 null 分配给可为空的日期时间?财产。具有匿名类型(
DateTime
类型的Responded_Date
:具有自定义类投影(
DateTime?
类型的Responded_Date
):Linq to XML does not natively support
xsi:nil
, also see this msdn social link. As a workaround what you will have to do is manual checking and then either assign some default value for your date (i.e.DateTime.MaxValue
) or use a class projection instead of an anonymous type and assign null to a nullable DateTime? property.with anonymous type (
Responded_Date
of typeDateTime
:with custom class projection (
Responded_Date
of typeDateTime?
):