[英]DateTime.ParseExact gives String was not recognized as a valid DateTime.
[英]XDocument and reading xsi:nil=“true” gives “String was not recognized as a valid DateTime”
樂於閱讀XML
var q2 = from c in xmlDoc.Descendants("Ticket")
select new
{ Responded_Date = (DateTime)c.Element("Responded_Date") }
但是,當標簽為
<Responded_Date xsi:nil="true" />
我得到“字符串未被識別為有效的DateTime”。 我不希望使用null合並運算符,而只是將null並插入到datatable中
將Responded_Date聲明為可為空的日期時間。
var q2 = from c in xmlDoc.Descendants("Ticket")
select new { Responded_Date = (DateTime?)c.Element("Responded_Date") };
如果<Responded_Date>
元素丟失,將返回空值。
如果日期無效,則將收到FormatException- “無法將字符串識別為有效的DateTime。”。 <Responded_Date xsi:nil="true" />
將導致FormatException。
Linq to XML本身不支持xsi:nil
,也請參見此msdn社交鏈接 。 解決方法是手動檢查,然后為日期指定一些默認值(即DateTime.MaxValue
),或者使用類投影而不是匿名類型,然后將null分配給可為null的DateTime? 屬性。
具有匿名類型( DateTime
類型的Responded_Date
:
select new
{
Responded_Date = c.Element("Responded_Date").Value!=""
? (DateTime)c.Element("Responded_Date")
: DateTime.MaxValue
}
使用自定義類投影(類型為DateTime?
Responded_Date
DateTime?
):
select new MyFoo()
{
Responded_Date = c.Element("Responded_Date").Value!=""
? (DateTime)c.Element("Responded_Date")
: null
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.