In describing the makeup of the XML document you state the following:
The XML in the following example defines an XML document with a root node called site. This root node contains one or more nodes called sites that include elements called name and url. The site element includes an attribute called technical.
In fact, the root node is actually called sites and contains one or more nodes called site.
Not being nit-picky but it makes a huge difference because then the LINQ query and just about anything else you attempt will fail.