Maison >développement back-end >C++ >XmlSerializer peut-il désérialiser des données XML dans une liste ?

XmlSerializer peut-il désérialiser des données XML dans une liste ?

Barbara Streisand
Barbara Streisandoriginal
2025-01-13 08:08:42358parcourir

Can XmlSerializer Deserialize XML Data into a List?

Utilisez XmlSerializer pour désérialiser XML dans une liste

La sérialisation est une technique puissante pour convertir des objets en un flux de données pouvant être stocké ou transmis. Un cas d'utilisation courant est la désérialisation, où les données sont reconverties en objets basés sur un format de données spécifique (tel que XML).

XmlSerializer peut-il convertir du XML en liste ?

Oui, il est possible d'utiliser la classe XmlSerializer pour désérialiser du XML dans une Liste. Cependant, étant donné que XmlSerializer convertit généralement XML en une instance directe d'une classe, une légère modification est requise pour y parvenir.

Créer une classe wrapper

Pour encapsuler la liste d'utilisateurs, créez une classe wrapper nommée UserList :

<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>

Exemple

Étant donné le XML et la classe User fournis, voici comment désérialiser XML dans une liste :

<code class="language-csharp">XmlSerializer ser = new XmlSerializer(typeof(UserList));
UserList list = new UserList();
list.Items.Add(new User { Id = 1, Name = "abc" });
list.Items.Add(new User { Id = 2, Name = "def" });
list.Items.Add(new User { Id = 3, Name = "ghi" });

ser.Serialize(Console.Out, list);</code>

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn