Reading XML using XDocument & Linq

Total Post:149

Points:1043
 1353  View(s)
Ratings:
Rate this:

I'm using LINQ together with XDocument to read a XML File. This is the code:

XDocument xml = XDocument.Load(filename);
var q = from b in xml.Descendants("product")
        select new
        {
            name =b.Element("name").Value,
            price =b.Element("price").Value,                   
            extra =b.Element("extra1").Value,
            deeplink =b.Element("deepLink").Value                  
        };

Now the problem is, the extra1 field is not always present. There are items in the XML file without that node. If that happens it's crashing with a NullReferenceException.

Is there any possibility to include a "check if null" so I can prevent it from crashing?

  1. Post:378

    Points:2694
    Re: Reading XML using XDocument & Linq

    Hi Royce, 

    Use (string) instead of .Value:

    var q = from b in xml.Descendants("product")
            select new
            {
                name =(string)b.Element("name"),
                price =(double?)b.Element("price"),                   
                extra =(string)b.Element("extra1"),
                deeplink =(string)b.Element("deepLink")                  
            };

      Modified On Apr-05-2018 04:28:50 AM

Answer