We are building a Website in Silverlight that needs to access some data from a XML file.

Here is an example of XML document.


<?xml version="1.0" encoding="utf-8" ?>

<Contents>
<
Content Title="Mahesh Chand"
ImageUri="ADO.NET Programming with C#"
RedirectText="APress"
RedirectUri="2003"
Description="44.95" >
</
Content>

<Content Title="Raj Beniwal"
ImageUri="Mastering Silverlight"
RedirectText="Mindcracker"
RedirectUri="2010"
Description="49.95" />

<Content Title="Mike Gold"
ImageUri="Visual C# Programming"
RedirectText="Microgold Press"
RedirectUri="2005"
Description="44.95" />

</Contents>

Before you can use LINQ to XML, you must add a reference to the System.Xml.Linq.dll assembly and import the following namespace in the code.

using System.Xml.Linq;

The following code snippet loads XML file in a Silverlight application using LINQ to XML and reads all of the attributes of the nodes. To run this code, create a Silverlight Web application, add a Button and a ListBox control and write the following code on the Button click event handler.

// Load XML document
XDocument
doc = XDocument.Load("Authors.xml");

// Get all nodes of the root node

IEnumerable<XNode> nodes =
from xmlNode in doc.Root.Nodes()
select xmlNode;

foreach (XNode node in nodes)
{

XElement elm = (XElement)node;

IEnumerable<XAttribute> attList =
from at in elm.Attributes()
select at;

foreach (XAttribute att in attList)
{

listBox1.Items.Add(att.Name + " : " + att.Value);
}

}