optimierung der XML -Deserialisierung in C#
Dieser Leitfaden bietet eine robuste Lösung zur Deserialisierung von XML -Dokumenten in C#, insbesondere in Bezug auf die Herausforderungen mit komplexen Strukturen. Das Beispiel XML zeigt Schwierigkeiten für Standard -Deserialisierungsmethoden.
Die Herausforderung:
direkte Deserialisierung der folgenden XML -Struktur schlägt häufig aufgrund ihrer Formatierung fehl:
<code class="language-xml"><?xml version="1.0" encoding="utf-8"?><br></br><cars><br></br><car><StockNumber>1020</StockNumber> <Make>Nissan</Make> <Model>Sentra</Model><p></p></car><br></br><car><StockNumber>1010</StockNumber> <Make>Toyota</Make> <Model>Corolla</Model><p></p></car><br></br><car><StockNumber>1111</StockNumber> <Make>Honda</Make> <Model>Accord</Model><p></p></car><br></br></cars><br></br></code>
Nutzung des xsd
-Werguts zur effizienten Deserialisierung:
Das Tool xsd
bietet eine leistungsstarke Lösung. Dieser Ansatz erzeugt C# -Klassen, die genau mit der Struktur des XML übereinstimmen und die Deserialisierung vereinfachen.
Schritte:
cars.xml
). xsd cars.xml
aus, um eine XSD -Schema -Datei zu generieren (cars.xsd
). xsd cars.xsd /classes
aus, um eine C# -Codungsdatei (z. B. cars.cs
) zu generieren, die Klassen enthalten, die die XML -Elemente darstellen. Deserialisierung mit XmlSerializer
:
Verwenden Sie nach dem Generieren der C# -Klasse die XmlSerializer
, um das XML zu deserialisieren:
XmlSerializer
: XmlSerializer ser = new XmlSerializer(typeof(Cars));
(Angenommen, Cars
ist die von xsd
) erzeugte Root -Klasse.
XmlReader
(Ersetzen Sie XmlReader reader = XmlReader.Create(path);
durch den XML -Dateipfad). path
Cars carsData = (Cars)ser.Deserialize(reader);
-Datei in Ihr Projekt aufzunehmen. Diese Methode gewährleistet eine genaue und typsichere Deserialisierung der XML-Daten. Dieser Ansatz übernimmt die Unregelmäßigkeiten in der Formatierung des ursprünglichen XML effektiv. cars.cs
Das obige ist der detaillierte Inhalt vonWie kann ich XML -Dokumente in C# mit dem `xsd` -Tool effizient deserialisieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!