Maison > développement back-end > C++ > Comment remplir un dictionnaire avec des données XML en utilisant C# ?

Comment remplir un dictionnaire avec des données XML en utilisant C# ?

Susan Sarandon
Libérer: 2025-01-04 00:01:42
original
562 Les gens l'ont consulté

How to Populate a Dictionary with XML Data Using C#?

Dictionnaire de remplissage avec des données XML

Étant donné un dictionnaire vide et XML personnalisé au format :

<items>
  <item>
Copier après la connexion

Pour remplir le dictionnaire avec des données du XML et le sérialiser, nous utiliserons une classe personnalisée et la classe XmlSerializer.

Sérialisation utilisant Classe personnalisée

  1. Définir un élément de classe personnalisé pour agir comme un conteneur temporaire pour le XML data :
public class item
{
    [XmlAttribute]
    public int id;
    [XmlAttribute]
    public string value;
}
Copier après la connexion
  1. Créez une instance de XmlSerializer avec les attributs root et type appropriés :
XmlSerializer serializer = new XmlSerializer(typeof(item[]), 
                                 new XmlRootAttribute() { ElementName = "items" });
Copier après la connexion
  1. Sérialisez le dictionnaire en le convertissant à un tableau d'objets d'élément et en sérialisant le array :
serializer.Serialize(stream, 
              dict.Select(kv=>new item(){id = kv.Key,value=kv.Value}).ToArray() );
Copier après la connexion

Désérialisation à l'aide d'une classe personnalisée

  1. Désérialiser le XML en un tableau d'objets élément :
var orgDict = ((item[])serializer.Deserialize(stream))
               .ToDictionary(i => i.id, i => i.value);
Copier après la connexion

Alternative : Utilisation de XElement

Si vous préférez utiliser le XElement class:

Sérialisation à l'aide de XElement

  1. Créer un objet XElement représentant la structure XML :
XElement xElem = new XElement(
                    "items",
                    dict.Select(x => new XElement("item",new XAttribute("id", x.Key),new XAttribute("value", x.Value)))
                 );
var xml = xElem.ToString(); //xElem.Save(...);
Copier après la connexion

Désérialisation à l'aide de XElement

  1. Analyser le XML dans un XElement object :
XElement xElem2 = XElement.Parse(xml); //XElement.Load(...)
Copier après la connexion
  1. Extraire les données du XML à l'aide de LINQ et remplir le dictionnaire :
var newDict = xElem2.Descendants("item")
                    .ToDictionary(x => (int)x.Attribute("id"), x => (string)x.Attribute("value"));
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal