1. Welcome Guest! In order to create a new topic or reply to an existing one, you must register first. It is easy and free. Click here to sign up now!.
    Dismiss Notice

Optional elements/attributes in LINQ to XML

Discussion in 'Microsoft News' started by NewsBot, Apr 29, 2008.

  1. NewsBot

    NewsBot I Got News

    Joined:
    Feb 8, 2006
    Messages:
    1,813
    Operating System:
    Windows Vista Home Premium
    I'm generating an XML file based on a bunch of properties in my class, and I'm wondering what's the best way to deal with optional elements or attributes.

    Say I need an XML file like this:


    *
    *** Bas
    *


    Let's say that the age attribute is optional. Now, suppose I have a class that defines a Name and an Age property. You could generate the XML as follows:

    Person person = new Person();

    [...]

    XDocument document = new XDocument(
    ***new XElement("persons",
    ******new XElement("person",
    *********new XAttribute("age", person.Age),
    *********new XElement("name", person.Name)
    ******** )
    ***** )
    ** );

    This works fine if Age returns an actual value, but what if it's undefined, or a nullable type, for instance? Is there a way of making sure it only renders the age attribute if Age has an actual value without breaking up that single, smooth block into a mess of multiple if() statements?




     

Share This Page