To bardzo prosty problem, który mam. Używam XDocument do generowania pliku XML. Następnie chcę zwrócić jako klasę XmlDocument. I mam zmienną XmlDocument, którą muszę przekonwertować z powrotem na XDocument, aby dodać więcej węzłów.
Więc jaka jest najbardziej wydajna metoda konwersji XML między XDocument i XmlDocument? (Bez użycia tymczasowego przechowywania w pliku.)
c#
xml
linq-to-xml
Wim ten Brink
źródło
źródło
XmlDocument
(jako właściwość) iXDocument
(jako węzeł). Jeśli chcesz zachować deklarację, musisz potraktować ją jawnie (zobacz blogs.msdn.com/b/ericwhite/archive/2010/03/05/… lub odpowiedź stackoverflow.com/a/8894680/2688 @ Dmitry'ego )Dla mnie to rozwiązanie jednoliniowe działa bardzo dobrze
źródło
Wykorzystanie tego rozszerzenia jest wykonywane po prostu przy użyciu czegoś takiego
źródło
Jeśli musisz przekonwertować instancję System.Xml.Linq.XDocument na instancję System.Xml.XmlDocument, ta metoda rozszerzenia pomoże ci nie stracić deklaracji XML w wynikowej instancji XmlDocument:
Mam nadzieję, że to pomaga!
źródło
Możesz spróbować zapisać XDocument do XmlWriter podłączonego do XmlReadera dla XmlDocument.
Jeśli dobrze rozumiem pojęcia, bezpośrednia konwersja nie jest możliwa (struktura wewnętrzna jest inna / uproszczona w XDocument). Ale może się mylę ...
źródło
Trwa dyskusja na temat stronie http://blogs.msdn.com/marcelolr/archive/2009/03/13/fast-way-to-convert-xmldocument-into-xdocument.aspx
Wydaje się, że czytanie XDocument przez XmlNodeReader jest najszybszą metodą. Zobacz blog, aby uzyskać więcej informacji.
źródło
Jeśli potrzebujesz wariantu zgodnego z Win 10 UWP:
źródło