Deserialization XML

aymen87 - 30 avril 2014 à 19:18
Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 - 2 mai 2014 à 15:24
Bonjour,

J'ai l'xml suivant


<Root>
<...>
<Documents>
<Document>
<Data Tag="DOCTYPE">doc</Data>
<Data Tag="DOCFILENAME">DocName</Data>
</Document>
</Documents>
</Root>

la classe suivante pour contenir tous le fichier
 [Serializable]
[XmlRootAttribute("Root")]
public class Trans
{
[....]

[XmlArray("Documents")]
[XmlArrayItem("Document", typeof(Document))]
public Document [] Documents { get; set; }

}

La classe document pour le type document du fichier
 [Serializable]
public class Document
{
[XmlArrayItem("Data",typeof(DocumentData))]
public DocumentData [] Data { get; set; }
}

et enfin la classe Document Data celle qui definit le format du Tag Data sous chaque section Document
[Serializable]
public class DocumentData
{
[XmlAttribute("Tag")]
public string Tag { get; set; }
[XmlText]
public string Value;
}

Mon problème est que à chaque fois que je deserialize ce fichier je reçoit correctement tous les autres valeur (que je n'ai pas mis dans les post sinon ça devient très long).
sous la partie document de l'objet je trouve un document mais aucune data n'est chargé, j'ai essayé avec plusieurs modification mais je reçoit toujours l'array data avec 0 élément, aucun tag ne se charge dans l'objet.

Merci Beaucoup pour votre aide

2 réponses

Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 656
1 mai 2014 à 08:47
Bonjour, je te conseille d'utiliser LinqToXml, voir des exemples ici ou
0
cs_aymen87 Messages postés 109 Date d'inscription samedi 3 novembre 2007 Statut Membre Dernière intervention 4 février 2016
Modifié par cs_aymen87 le 2/05/2014 à 15:09
Merci Whismeril pour le lien

j'ai trouvé le problème dans le code.
en faite sous la classe Document il n'y avait pas de XMLArray donc je n'avait pas le droit de mettre XmlArrayItem,
l'attribut que je devait mettre est
[XmlElement("Data")]
public DocumentData [] Data { get; set; }
et ici on a Le type Document composé d'élement Xml Document Data,
ici j'ai toute la liste remplie de valeur
0
Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 656
2 mai 2014 à 15:24
Sujet résolu alors?
0
Rejoignez-nous