Wednesday, January 30, 2013

Parse XML file with Linq, part 1: Simple case

Let's read plugin information from the following XML file:

<Configuration>
  <UserSettings>
    <UserSetting Name="UsePlugins" Value="True" />
  </UserSettings>
  <Plugins>
    <Plugin Name="BackgroundWorker" />
    <Plugin Name="UserInteraction" />
  </Plugins>
</Configuration>
Plugin information is read into list of the following class:

public class Plugin
{
    public String Name { get; set; }
}
And the required code is:

namespace LinqTest
{
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Xml.Linq;

    static public class ParseXml
    {
        static public List<Plugin> Example1(String fileName)
        {
            XDocument document = XDocument.Load(fileName);
            List<Plugin> plugins = new List<Plugin>(from plugin in document.Descendants("Plugin")
                                                    select new Plugin
                                                    {
                                                        Name = (String)plugin.Attribute("Name")
                                                    });
            return plugins;
        }
    }
}


All blog entries related to "Parse XML file with Linq":

No comments:

Post a Comment