using System.Xml;
using System.Xml.Linq;
namespace XmlLib
{
///
/// Provides extension methods for simple conversion between System.Xml and System.Xml.Linq classes.
///
/// From: http://brianary.blogspot.com/2010/02/converting-between-xdocument-and.html
public static class XmlLinqConversionExtensions
{
///
/// Converts an XDocument to an XmlDocument.
///
/// The XDocument to convert.
/// The equivalent XmlDocument.
public static XmlDocument ToXmlDocument(this XDocument xdoc)
{
var xmldoc = new XmlDocument();
xmldoc.Load(xdoc.CreateReader());
return xmldoc;
}
///
/// Convert an XElement to an XmlDocument.
///
///
///
public static XmlDocument ToXmlDocument(this XElement xelement)
{
var xmldoc = new XmlDocument();
xmldoc.Load(xelement.CreateReader());
return xmldoc;
}
///
/// Converts an XmlDocument to an XDocument.
///
/// The XmlDocument to convert.
/// The equivalent XDocument.
public static XDocument ToXDocument(this XmlDocument xmldoc)
{
return XDocument.Load(xmldoc.CreateNavigator().ReadSubtree());
}
///
/// Converts an XmlDocument to an XElement.
///
///
///
public static XElement ToXElement(this XmlDocument xmldoc)
{
return ToXDocument(xmldoc).Root;
}
///
/// Converts an XElement to an XmlElement.
///
/// The XElement to convert.
/// The equivalent XmlElement.
public static XmlElement ToXmlElement(this XElement xelement)
{
return new XmlDocument().ReadNode(xelement.CreateReader()) as XmlElement;
}
///
/// Converts an XmlElement to an XElement.
///
/// The XmlElement to convert.
/// The equivalent XElement.
public static XElement ToXElement(this XmlElement xmlelement)
{
return XElement.Load(xmlelement.CreateNavigator().ReadSubtree());
}
}
}