Dealing with a null datetime element within xml using linq

Posted by diver-d on Stack Overflow See other posts from Stack Overflow or by diver-d
Published on 2010-03-19T05:25:05Z Indexed on 2010/03/19 5:31 UTC
Read the original article Hit count: 358

Filed under:
|

HI

I have an example document that looks like

<ItemEntry>
<PurchaseDate>2010-03-18T20:36:32.81108+13:00</PurchaseDate>
<StoreGUID>0a0324ad-5f99-486a-a2d0-870bc6991e9f</StoreGUID>
<ExpiryDate />
<CardID>111111</CardID>
<PurchaseAmount>0</PurchaseAmount>
<RedeemedAmount />
<EntryType>1</EntryType>
<RedeemedDate />
<SalesAssistantID>0</SalesAssistantID>
</ItemEntry>

As you can see there are couple of elements ExpiryDate and RedeemedDate are are empty.

  var q = from c in xml.Elements("ItemEntry")
                    select new mdDetail {
                        PurchaseDate = (DateTime)c.Element("PurchaseDate"),
                        StoreGUID = (Guid)c.Element("StoreGUID"),
                        ExpiryDate = (DateTime?)c.Element("ExpiryDate")??DateTime.MinValue,
                        CardID = (int)c.Element("CardID"),
                        PurchaseAmount = (double)c.Element("PurchaseAmount"),
                         RedeemedAmount = (double?)c.Element("RedeemedAmount"),
                        EntryType = (int)c.Element("EntryType"),
                        RedeemedDate = (DateTime?)c.Element("RedeemedDate") ??DateTime.MinValue,
                        SalesAssistantID = (int)c.Element("SalesAssistantID"),



                    }                      
                    ;
            foreach (var item in q)
            {

            }

I am not sure how to deal with the null element value, I have tried ??DateTime.MinValue and ??null however both give me a " String was not recognized as a valid DateTime." error.

Any suggestions?

Thank you

© Stack Overflow or respective owner

Related posts about linq-to-xml

Related posts about LINQ