Maison >développement back-end >C++ >Comment désérialiser un document XML dans des objets C #?

Comment désérialiser un document XML dans des objets C #?

DDD
DDDoriginal
2025-02-02 17:16:09811parcourir

How to Deserialize an XML Document into C# Objects?

C # Désérialisation XML: transformation des données XML en objets

Ce guide montre comment convertir les documents XML en objets C #, un processus appelé désérialisation. Utilisons cet exemple de 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>

Pour désérialiser cela, nous créons des classes C # correspondantes:

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

Maintenant, nous pouvons désérialiser le XML en utilisant 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>

N'oubliez pas de remplacer xmlFilePath par le chemin d'accès réel vers votre fichier XML.

Alternativement, vous pouvez utiliser un processus en deux étapes impliquant XSD:

  1. Générer XSD: Créer une définition de schéma XML (XSD) à partir de votre fichier XML à l'aide d'un outil approprié (de nombreux IDE offrent cette fonctionnalité).

  2. Générez des classes C # à partir de XSD: Utilisez l'outil de ligne de commande xsd.exe (inclus avec Visual Studio) avec l'option /classes pour générer des classes C # à partir du XSD. Cela créera automatiquement des classes reflétant votre structure XML. Ensuite, utilisez le XmlSerializer comme indiqué ci-dessus. Cette méthode est particulièrement utile pour les structures XML complexes.

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