rationaliser la désérialisation XML dans C #
Ce guide fournit une solution robuste pour désérialiser les documents XML en C #, en particulier pour relever les défis avec des structures complexes. L'exemple XML présente des difficultés pour les méthodes de désérialisation standard.
Le défi:
La désérialisation directe de la structure XML suivante échoue souvent en raison de sa mise en forme:
<code class="language-xml"><?xml version="1.0" encoding="utf-8"?><br></br><cars><br></br><car><StockNumber>1020</StockNumber> <Make>Nissan</Make> <Model>Sentra</Model><p></p></car><br></br><car><StockNumber>1010</StockNumber> <Make>Toyota</Make> <Model>Corolla</Model><p></p></car><br></br><car><StockNumber>1111</StockNumber> <Make>Honda</Make> <Model>Accord</Model><p></p></car><br></br></cars><br></br></code>
Tiration de l'outil xsd
pour une désérialisation efficace:
L'outil xsd
offre une solution puissante. Cette approche génère des classes C # qui correspondent précisément à la structure du XML, simplifiant la désérialisation.
étapes:
cars.xml
). xsd cars.xml
pour générer un fichier de schéma XSD (cars.xsd
). xsd cars.xsd /classes
pour générer un fichier de code C # (par exemple, cars.cs
) contenant des classes représentant les éléments XML. désérialisation avec XmlSerializer
:
Après avoir généré les classes C #, utilisez le XmlSerializer
pour désérialiser le XML:
XmlSerializer
: XmlSerializer ser = new XmlSerializer(typeof(Cars));
(en supposant Cars
est la classe racine générée par xsd
). XmlReader
: XmlReader reader = XmlReader.Create(path);
(Remplacer path
par le chemin du fichier XML). Cars carsData = (Cars)ser.Deserialize(reader);
N'oubliez pas d'inclure le fichier généré cars.cs
dans votre projet. Cette méthode assure la désérialisation précise et sécurisée des données XML. Cette approche gère efficacement les irrégularités de la mise en forme du XML d'origine.
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!