2008-11-12 21 views
13

HI,LinqToXML XElement a XmlNode

¿Hay alguna forma 'correcta' para convertir un XElement a un XmlNode en C# - LinqToXML hace que sea agradable para construir el XML necesario mediante programación, pero los servicios Web de SharePoint requiere una XmlNode, lo cuál está la mejor manera de mezclar y combinar?

Respuesta

20

Uso CreateReader() y un XmlDocument como

XmlDocument myXmlNode = new XmlDocument(); 
using (XmlReader reader = myXElement.CreateReader()) 
{ 
    myXmlNode.Load(reader); 
} 

XmlDocument se deriva de XmlNode.

+3

En caso de que esto ayude a alguien más: La propiedad 'Atributos' de XmlNode siempre es nula a menos que el nodo sea del tipo XmlNodeType.Element. Por lo tanto, si intenta convertir un XElement con atributos en un XmlNode, su XmlDocument (myXmlNode) desde arriba tendrá una propiedad nula de 'Atributos'. Sin embargo, puede obtener los atributos si utiliza myXmlNode.DocumentElement.Attributes en su lugar. – Scott