Deserializer une collection XML
Bonjour,
Mon problème est le suivant : je reçois de la part d'un service REST un XML, qui contient une liste d'éléments.
J'aimerais la "déserializer". Mais je n'y arrive pas car la balise qui contient ma liste n'est pas comprise par la classe XmlSerializer.
Supposons que je reçoit une collection d'objet "Personne".
Le code XML renvoyé par le webservice est :
Code:
1 2 3 4 5 6 7 8 9 10
|
<?xml version="1.0" encoding="UTF-8"?>
<Personnes>
<Personne>
<Nom>Toto1</Nom>
</Personne>
<Personne>
<Nom>Toto2</Nom>
</Personne>
</Personnes> |
En gros, le webservice englobe par une balise au pluriel la collection renvoyée.
Je ne sais pas comment définir un objet permettant de désérializer cela.
J'ai correctement généré une classe "Personne" grâce à xsd.exe et le xsd qui correspond.
J'essaye de désérializer grâce à ce code :
Code:
1 2 3 4 5 6 7 8 9
|
XmlSerializer xs = new XmlSerializer(typeof(Personne[]));
// On déserialise une liste de Personnes
Personne[] Liste_Personne;
using (StreamReader rd = new StreamReader("2_Personnes.xml"))
{
Liste_Personne = xs.Deserialize(rd) as Personne[];
} |
Mais cela ne marche pas. Lors de l'execution, cela lève une exception disant que la balise "Personnes" n'était pas attendu.
C'est logique mais je ne sais pas comment contourner ce problème.
Merci par avance.