Convert XElement to XmlNode (and Convert XmlNode to XElement)

This is just way cool.  Check out Eric White’s blog for a slick use of extension methods to make it easier to convert types in the System.Xml namespace to types in the System.Xml.Linq namespace, and vice-versa.  Here’s a quick teaser:

         XElement e = new XElement("Root",
            new XElement("Child",
                new XAttribute("Att", "1")
            )
        );

 
        XmlNode xmlNode = e.GetXmlNode();
        Console.WriteLine(xmlNode.OuterXml);

        XElement newElement = xmlNode.GetXElement();
        Console.WriteLine(newElement);

No, that code won’t compile on its own, you need to define the GetXElement and GetXmlNode methods as described in Eric White’s blog.  It just wouldn’t be fair to post it here.