Query XML with Descendants : Query « XML LINQ « C# / C Sharp






Query XML with Descendants

 
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.Linq;
using System.Reflection;
using System.Xml.Linq;

class Program {
    static void Main(string[] args) {
        XElement xml = XElement.Load("Employee.xml");
        var query = from p in xml.Descendants("person")
                    join s in xml.Descendants("id")
                    on (int)p.Element("id") equals (int)s.Attribute("id")
                    select new {
                        FirstName = p.Element("firstname").Value,
                        LastName = p.Element("lastname").Value,
                        Amount = s.Attribute("salaryyear").Value
                    };
        foreach (var record in query) {
            Console.WriteLine("Employee: {0} {1}, Salary {2}", record.FirstName,
                                                            record.LastName,
                                                            record.Amount);
        }
    }
}

 








Related examples in the same category

1.A Simple XML Query Using LINQ to XML
2.Query XML document with where clause
3.Query XML document by attribute
4.Query XML document with Ancestors and First
5.Get Node by type with OfType
6.Query XML with namespace
7.Use Linq query to get XML document elements
8.Query string array by its element length
9.use Linq to query an XML document