XML-Serialisierung und XSD-generierte Bindungen bieten eine bequeme und strukturierte Möglichkeit, XML auf C#-Objekte abzubilden. Diese Ansätze basieren jedoch auf der Zwischenspeicherung des gesamten XML-Dokuments im Speicher, was bei großen Dateien problematisch sein kann.
XmlReader vs. handgefertigte ObjekteXmlReader bietet einen Vorteil -Nur streambasierter Ansatz, der weniger Speicher verbraucht als DOM-Parser. Allerdings ist ein sorgfältig handgefertigter Objektgraph erforderlich, um die XML-Struktur zu erfassen.
XLINQ: Eine raffinierte AlternativeXLINQ stellt einen Kompromiss zwischen beiden dar. Es bietet eine leichte objektorientierte API für die Bearbeitung von XML, vermeidet den Overhead von DOM und ermöglicht gleichzeitig effizientes Streaming.
Überlegungen zum Speicher
Für große XML-Dokumente (z. B. Ihr geschätzter 150-MB-Extrakt) wird XmlReader mit einem handgefertigten Objektdiagramm empfohlen. Dieser Ansatz bietet die beste Speichereffizienz und ermöglicht gleichzeitig einen flexiblen und anpassbaren Parsing-Prozess.
Beispielcode mit XmlReader:
using (XmlReader myReader = XmlReader.Create(@"c:\data\coords.xml")) { while (myReader.Read()) { // Process each node (myReader.Value) here // ... } }
So lesen Sie XML aus einer Datei mit Visual C#
Das obige ist der detaillierte Inhalt vonGroßes XML-Parsing in C#: XSD, XLINQ oder XmlReader – welcher Ansatz ist hinsichtlich der Speichereffizienz erfolgreich?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!