LINQ to XML
The LINQ to XML provider loads an XML document into memory and transforms it into a queryable set of objects (such as XElement and XAttribute) which fully describe the document and can be navigated through in an XPath or XQuery fashion.
Example 10-8 demonstrates a very simple XML document showing which books have been written by which authors. You should create and add this to the C10_LINQ website. The authors’ details are contained in the AdventureWorksLT database which you’ll access in the section on LINQ to SQL, and the book details are in the in-memory objects created earlier in this chapter.
Example 10-8. Authors.xml
<?xml version="1.0" encoding="utf-8" ?>
<authorlist>
<author id="1">
<book isbn="0596529562" />
<book isbn="059652756X" />
</author>
<author id="10">
<book isbn="059652756X" />
<book isbn="0596527438" />
</author>
<author id="38">
<book isbn="0596518439" />
</author>
<author id="201">
<book isbn="0596518439" />
<book isbn="0596527438" />
</author>
</authorlist>First, you’ll create a page that displays just the author IDs. Add to the C10_LINQ website a new page called SimpleXmlQuery.aspx, and then add a Label control called lblAuthors to the page. Replace the code-behind page with the code in Example 10-9.
Example 10-9. SimpleXmlQuery.aspx
using System;
using System.Linq;
using System.Web.UI;
using System.Xml.Linq;
public partial class SimpleXmlQuery : Page
{
protected void Page_Load(object sender, EventArgs e)
{
XElement doc = XElement.Load(Request.ApplicationPath ...