Es un problema muy simple que tengo. Yo uso XDocument para generar un archivo XML. Luego quiero devolverlo como una clase XmlDocument. Y tengo una variable XmlDocument que necesito convertir de nuevo a XDocument para agregar más nodos.
Entonces, ¿cuál es el método más eficiente para convertir XML entre XDocument y XmlDocument? (Sin usar ningún almacenamiento temporal en un archivo).
c#
xml
linq-to-xml
Wim ten Brink
fuente
fuente
XmlDocument
(como una propiedad) yXDocument
(como un nodo). Si desea conservar la declaración, deberá manejarla explícitamente (consulte blogs.msdn.com/b/ericwhite/archive/2010/03/05/… o la respuesta de @ Dmitry stackoverflow.com/a/8894680/2688 )Para mí, esta solución de línea única funciona muy bien.
fuente
El uso de esta extensión se hace simplemente usando algo como esto
fuente
Si necesita convertir la instancia de System.Xml.Linq.XDocument en la instancia de System.Xml.XmlDocument, este método de extensión lo ayudará a no perder la declaración XML en la instancia resultante de XmlDocument:
¡Espero que ayude!
fuente
Podría intentar escribir el XDocument en un XmlWriter canalizado a un XmlReader para un XmlDocument.
Si entiendo los conceptos correctamente, no es posible una conversión directa (la estructura interna es diferente / simplificada con XDocument). Pero entonces, podría estar equivocado ...
fuente
Hay una discusión en http://blogs.msdn.com/marcelolr/archive/2009/03/13/fast-way-to-convert-xmldocument-into-xdocument.aspx
Parece que leer un XDocument a través de un XmlNodeReader es el método más rápido. Vea el blog para más detalles.
fuente
Si necesita una variante compatible con Win 10 UWP:
fuente