Home > DeveloperSection > Forums > Add XElement only if value exists
Pravesh Singh

Total Post:411

Points:2881
Posted on    September-04-2013 2:26 AM

 C# C# 
Ratings:


 1 Reply(s)
 1403  View(s)
Rate this:

I'm creating an XDocument using Linq-To-XML, like this:

Order order = GetOrder();

XDocument doc = new XDocument(

    new XElement("purchaseOrder",

        new XElement("Name", order.Name),

        new XElement("Address", order.Address),

        new XElement("Shipper", order.Shipper)

    )

);

So sometimes an order will not have a Shipper, it will be null. In that case, I don't want to include the Shipper element at all.

How can I do that inline in my code when creating the doc?



Sumit Kesarwani

Total Post:378

Points:2694
Posted on    September-04-2013 7:04 AM

Hi Pravesh,

Just check if the Shipper value is null. If it isn't, then add your element, otherwise just set it to null. A null value in the constructor translates to nothing added in its place.

Order order = GetOrder();

XDocument doc = new XDocument(

    new XElement("purchaseOrder",

        new XElement("Name", order.Name),

        new XElement("Address", order.Address),

        order.Shipper != null ? new XElement("Shipper", order.Shipper) : null

    )

);


Don't want to miss updates? Please click the below button!

Follow MindStick