Heim >Backend-Entwicklung >C++ >Wie kann man ein XML -Dokument in C# -Objekte deserialisieren?
c# xml Deserialisierung: Transformation von XML -Daten in Objekte
Dieser Leitfaden zeigt, wie XML -Dokumente in C# -Objekte konvertiert werden, einen Prozess, der als Deserialisierung bezeichnet wird. Verwenden wir dieses Beispiel XML:
<code class="language-xml"><?xml version="1.0" encoding="utf-8"?> <cars> <car> <stocknumber>1020</stocknumber> <make>Nissan</make> <model>Sentra</model> </car> <car> <stocknumber>1010</stocknumber> <make>Toyota</make> <model>Corolla</model> </car> <car> <stocknumber>1111</stocknumber> <make>Honda</make> <model>Accord</model> </car> </cars></code>
Um dies zu deserialisieren, erstellen wir passende C# Klassen:
<code class="language-csharp">[Serializable] public class Car { [System.Xml.Serialization.XmlElementAttribute("StockNumber")] public string StockNumber { get; set; } [System.Xml.Serialization.XmlElementAttribute("Make")] public string Make { get; set; } [System.Xml.Serialization.XmlElementAttribute("Model")] public string Model { get; set; } } [System.Xml.Serialization.XmlRootAttribute("Cars", Namespace = "", IsNullable = false)] public class Cars { [XmlArrayItem(typeof(Car))] public Car[] Car { get; set; } }</code>
Jetzt können wir den XML mit XmlSerializer
:
<code class="language-csharp">XmlSerializer serializer = new XmlSerializer(typeof(Cars)); Cars carData; using (XmlReader reader = XmlReader.Create(xmlFilePath)) // xmlFilePath should be replaced with the actual file path { carData = (Cars)serializer.Deserialize(reader); }</code>
Denken Sie daran, xmlFilePath
durch den tatsächlichen Pfad zu Ihrer XML -Datei zu ersetzen.
Alternativ können Sie einen zweistufigen Prozess mit XSD verwenden:
generieren Sie XSD: Erstellen Sie eine XML -Schema -Definition (XSD) aus Ihrer XML -Datei mit einem geeigneten Tool (viele IDEs bieten diese Funktionalität).
Generieren Sie C# Klassen aus XSD: Verwenden Sie das Befehlszeilen-Tool xsd.exe
mit Visual Studio mit der Option /classes
, um C# -Klassen aus dem XSD zu generieren. Dadurch werden automatisch Klassen erstellt, die Ihre XML -Struktur widerspiegeln. Verwenden Sie dann die XmlSerializer
wie oben gezeigt. Diese Methode ist besonders nützlich für komplexe XML -Strukturen.
Das obige ist der detaillierte Inhalt vonWie kann man ein XML -Dokument in C# -Objekte deserialisieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!