XDocument для XElement

Как вы конвертируете XDocument в XElement?

Я нашел следующее путем поиска, но это для преобразования между XDocument и XmlDocument, а не XDocument и XElement.

public static XElement ToXElement(this XmlElement xmlelement)
{
    return XElement.Load(xmlelement.CreateNavigator().ReadSubtree());
}

public static XmlDocument ToXmlDocument(this XDocument xdoc)
{
    var xmldoc = new XmlDocument();
    xmldoc.Load(xdoc.CreateReader());
    return xmldoc;
}

Я не смог найти ничего, чтобы преобразовать XDocument в XElement. Любая помощь будет оценена.

Ответы

Ответ 1

XDocument для XmlDocument:

XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(xdoc.CreateReader());

XmlDocument для XDocument

XDocument xDoc = XDocument.Load(new XmlNodeReader(xmlDoc));

Чтобы получить корневой элемент из XDocument, вы используете xDoc.Root

Ответ 2

Другие люди сказали это, но здесь явно образец для преобразования XDocument в XElement:

 XDocument doc = XDocument.Load(...);
 return doc.Root;

Ответ 3

Простое преобразование из XDocument в XElement

XElement cvtXDocumentToXElement(XDocument xDoc)
{
    XElement xmlOut = XElement.Parse(xDoc.ToString());
    return xmlOut;
}