Das Lesen von großen XML-Dokumenten in .net
Ich Lesen müssen, große xml mit .net-Dateien, die leicht mehrere GB Größe.
Ich versuche mit XDocument, aber es löst eine System.OutOfMemoryException, wenn ich versuche, laden Sie das Dokument.
Was ist die performante Möglichkeit zum Lesen von XML-Dateien von großer Größe?
Wenn Sie unter 64bit laufen und wollen eine schnelle Lösung für die OutOfMemoryException: gehen Sie zu Ihrem Projekt-Eigenschaften -> Registerkarte "erstellen" - > Plattform Ziel: ändern der CPU zu "x64".
InformationsquelleAutor Sam | 2011-10-06
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dass Sie im Grunde haben Verwendung der "pull" - Modell hier -
XmlReader
und Freunde. Das wird Ihnen erlauben, zu streamen, das Dokument statt laden alles in den Speicher in einem Rutsch.Beachten Sie, dass, wenn Sie wissen, dass man am Anfang ein "klein genug" - element, können Sie eine
XElement -
ausXmlReader
, Angebot mit, über die Herrlichkeit von LINQ to XML, und verschieben Sie dann auf das nächste element.InformationsquelleAutor Jon Skeet
Der folgenden Seite lässt eine interessante Lektüre, ein Mittel, um mir Daten aus der XML-Datei ohne das laden in den Arbeitsspeicher. Es erlaubt Ihnen, kombinieren Sie die Geschwindigkeit des XmlReader-mit der Flexibilität von Linq:
http://msdn.microsoft.com/en-us/library/bb387035.aspx
Und sehr interessante Artikel basiert auf diese Technik:
http://blogs.msdn.com/b/xmlteam/archive/2007/03/24/streaming-with-linq-to-xml-part-2.aspx
InformationsquelleAutor spender
Könnten Sie versuchen, mit einem
XmlTextReader
Instanz.http://msdn.microsoft.com/en-us/library/system.xml.xmltextreader.aspx
InformationsquelleAutor Daniel Becroft