Heim > Backend-Entwicklung > C++ > Wie deserialisiere ich XML mit XmlSerializer in eine Liste?

Wie deserialisiere ich XML mit XmlSerializer in eine Liste?

Barbara Streisand
Freigeben: 2025-01-13 07:59:57
Original
140 Leute haben es durchsucht

How to Deserialize XML into a List Using XmlSerializer?

XmlSerializer und ListDeserialisierung: Ein praktischer Leitfaden

Die XmlSerializer-Klasse bietet eine unkomplizierte Methode zum Deserialisieren von XML-Daten in verschiedene Datentypen, einschließlich Listen benutzerdefinierter Objekte. Dieser Leitfaden zeigt zwei Ansätze, um dies zu erreichen.

Methode 1: Verwendung einer Wrapper-Klasse

Um XML in ein List<User> zu deserialisieren, ist eine Wrapper-Klasse erforderlich, die als Wurzelelement innerhalb der XML-Struktur dient. Betrachten Sie die UserList Klasse:

<code class="language-csharp">[XmlRoot("user_list")]
public class UserList
{
    public UserList() { Items = new List<User>(); }
    [XmlElement("user")]
    public List<User> Items { get; set; }
}</code>
Nach dem Login kopieren

Diese Klasse kapselt eine Liste von User Objekten. Das Attribut [XmlRoot("user_list")] bezeichnet „user_list“ als Stammelement im XML. Das [XmlElement("user")]-Attribut ordnet jedes User-Objekt einem „Benutzer“-Element zu.

Als nächstes definieren Sie die User-Klasse:

<code class="language-csharp">public class User
{
    [XmlElement("id")]
    public Int32 Id { get; set; }

    [XmlElement("name")]
    public String Name { get; set; }
}</code>
Nach dem Login kopieren

Verwenden Sie abschließend XmlSerializer für die Deserialisierung:

<code class="language-csharp">XmlSerializer serializer = new XmlSerializer(typeof(UserList));
UserList userList = (UserList)serializer.Deserialize(streamOrStringReader);</code>
Nach dem Login kopieren

Ersetzen Sie streamOrStringReader durch Ihr Stream- oder StringReader-Objekt, das die XML-Daten enthält.

Methode 2: Direkte Array-Deserialisierung

Alternativ können Sie die Liste direkt in die User-Klasse einbetten, um den Prozess zu vereinfachen:

<code class="language-csharp">[XmlRoot("user_list")]
public class User
{
    public User[] Items { get; set; }
}</code>
Nach dem Login kopieren

Deserialisierung wird dann:

<code class="language-csharp">XmlSerializer serializer = new XmlSerializer(typeof(User));
User userArray = (User)serializer.Deserialize(streamOrStringReader);</code>
Nach dem Login kopieren

Die Items-Eigenschaft enthält jetzt ein Array von User-Objekten.

Die richtige Methode wählen

Der Wrapper-Klassen-Ansatz (Methode 1) bietet mehr Flexibilität, während die direkte Array-Methode (Methode 2) eine prägnantere Lösung bietet. Die beste Wahl hängt von der spezifischen Struktur Ihrer XML-Daten und Ihren persönlichen Vorlieben ab.

Das obige ist der detaillierte Inhalt vonWie deserialisiere ich XML mit XmlSerializer in eine Liste?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage