É um problema muito simples que eu tenho. Eu uso o XDocument para gerar um arquivo XML. Desejo retorná-lo como uma classe XmlDocument. E eu tenho uma variável XmlDocument que preciso converter novamente em XDocument para acrescentar mais nós.
Então, qual é o método mais eficiente para converter XML entre XDocument e XmlDocument? (Sem usar armazenamento temporário em um arquivo.)
c#
xml
linq-to-xml
Wim ten Brink
fonte
fonte
XmlDocument
(como uma propriedade) eXDocument
(como um nó). Se você deseja preservar a declaração, precisará manipulá-la explicitamente (consulte blogs.msdn.com/b/ericwhite/archive/2010/03/05/… ou a resposta de @ Dmitry stackoverflow.com/a/8894680/2688 )Para mim, esta solução de linha única funciona muito bem
fonte
O uso desta extensão é feito usando simplesmente algo como isto
fonte
Se você precisar converter a instância de System.Xml.Linq.XDocument na instância de System.Xml.XmlDocument, esse método de extensão ajudará você a não perder a declaração XML na instância resultante de XmlDocument:
Espero que ajude!
fonte
Você pode tentar gravar o XDocument em um XmlWriter canalizado para um XmlReader para um XmlDocument.
Se eu entendo os conceitos corretamente, uma conversão direta não é possível (a estrutura interna é diferente / simplificada com o XDocument). Mas então, eu posso estar errado ...
fonte
Há uma discussão em http://blogs.msdn.com/marcelolr/archive/2009/03/13/fast-way-to-convert-xmldocument-into-xdocument.aspx
Parece que a leitura de um XDocument por meio de um XmlNodeReader é o método mais rápido. Veja o blog para mais detalhes.
fonte
Se você precisar de uma variante compatível com Win 10 UWP:
fonte