11
Answers

How can I deserialize an XML - Windows Phone

I'm using this function to deserialise the data of the xml file:
  1. Uri uri = new Uri("/XML/ligne1_EUROPE.xml", UriKind.Relative);
  2. XDocument document = XDocument.Load("XML/ligne1_EUROPE.xml"); 
  3. XmlSerializer serializer = new XmlSerializer(typeof(Destinataires)); 
  4. Destinataires ArretLoad = (Destinataires)serializer.Deserialize(document.CreateReader());
  5. listBox.ItemsSource = ArretLoad.Collection;
 He call the Destinataires class:
  1. [XmlRoot("root")] 
  2.    public class Destinataires 
  3.    { 
  4.       [XmlArray("Destinataires")] 
  5.       [XmlArrayItem("Destinataire")]
  6.       [XmlArrayItem("Horraires")] 
  7.       [XmlArrayItem("Horraire")] 
  8.       public ObservableCollection<XML_Arret> Collection { get; set; } 
  9.    }

And call the XML_Arret class

  1.  public class XML_Arret
  2. {
  3.    [XmlElement("Designation")]
  4.    public string Designation { get; set; }
  5.    [XmlElement("Carre")]
  6.    public string Carre { get; set; }
  7.    [XmlElement("Horraires")]
  8.    public Horraires[] Horaires { get; set; }
  9.  
  10.    public class Horraires
  11.    {
  12.       [XmlElement("Horraire")]
  13.       public string Horraire { get; set; }
  14.    }
  15. }

My XML files is:

  1. <?xml version="1.0" encoding="ISO-8859-1"?> 
  2. <root> 
  3.    <Destinataires> 
  4.       <Destinataire> 
  5.          <Designation>Faubourd d'isle</Designation> 
  6.          <Carre>images/1.png</Carre> 
  7.          <Horraires> 
  8.             <Horraire>6h18</Horraire> 
  9.             <Horraire>6h28</Horraire> 
  10.             <Horraire>6h38</Horraire>  
  11.                   ...  
  12.          </Horraires> 
  13.       </Destinataire>
  14.          ...  
  15.    </Destinataires> 
  16. </root>

But when I debug my programm, I've this message:

   Une exception de type 'System.InvalidOperationException' s'est produite dans System.Xml.Serialization.ni.dll
   mais n'a pas été gérée dans le code utilisateur
   
   à la ligne: XmlSerializer serializer = new XmlSerializer(typeof(Destinataires));

So, I'm lost, Do you can Help me?

And I'm sorry for my langage, I'm a french person.

Thanks


Answers (11)