Es ist ein sehr einfaches Problem, das ich habe. Ich benutze XDocument, um eine XML-Datei zu generieren. Ich möchte es dann als XmlDocument-Klasse zurückgeben. Und ich habe eine XmlDocument-Variable, die ich zurück in XDocument konvertieren muss, um weitere Knoten anzuhängen.
Was ist die effizienteste Methode zum Konvertieren von XML zwischen XDocument und XmlDocument? (Ohne temporären Speicher in einer Datei zu verwenden.)
c#
xml
linq-to-xml
Wim zehn Brink
quelle
quelle
XmlDocument
(als Eigenschaft) undXDocument
(als Knoten) unterschiedlich behandelt. Wenn Sie die Deklaration beibehalten möchten, müssen Sie sie explizit behandeln (siehe blogs.msdn.com/b/ericwhite/archive/2010/03/05/… oder @ Dmitrys Antwort stackoverflow.com/a/8894680/2688) )Für mich funktioniert diese einzeilige Lösung sehr gut
quelle
Die Verwendung dieser Erweiterung erfolgt dann einfach mit so etwas
quelle
Wenn Sie die Instanz von System.Xml.Linq.XDocument in die Instanz von System.Xml.XmlDocument konvertieren müssen, hilft Ihnen diese Erweiterungsmethode dabei , die XML-Deklaration in der resultierenden XmlDocument-Instanz nicht zu verlieren :
Hoffentlich hilft das!
quelle
Sie können versuchen, das XDocument in einen XmlWriter zu schreiben, der für ein XmlDocument an einen XmlReader weitergeleitet wird.
Wenn ich die Konzepte richtig verstehe, ist eine direkte Konvertierung nicht möglich (die interne Struktur ist mit XDocument anders / vereinfacht). Aber dann könnte ich mich irren ...
quelle
Es gibt eine Diskussion unter http://blogs.msdn.com/marcelolr/archive/2009/03/13/fast-way-to-convert-xmldocument-into-xdocument.aspx
Es scheint, dass das Lesen eines XDocument über einen XmlNodeReader die schnellste Methode ist. Weitere Informationen finden Sie im Blog.
quelle
Wenn Sie eine Win 10 UWP-kompatible Variante benötigen:
quelle