Je suis tout nouveau à C#. Je suis en train de prendre un cours là-dessus, et un de nos exemples de classe ne compilera pas. Visual Studio 2010 me donne cette erreur: Il existe une erreur dans le document XML (3, 2).C# XML Serialization/Deserialization
Comment modifier le fichier XML pour qu'il fonctionne avec le code?
Nous vous remercions de votre aide!
public class SerializeIn
{
public static void Main()
{
// Declarations.
Person[] p = new Person[0];
string infile = "Persons.xml";
StreamReader sr = new StreamReader(infile);
XmlSerializer xs = new XmlSerializer(p.GetType());
// Deserialize Person object from disc.
p = (Person[])(xs.Deserialize(sr));
// Close StreamReader object to be safe.
sr.Close();
// Write what happened.
Console.WriteLine("Deserialized array p from output file " +
infile + ".");
// Print array.
foreach(Person x in p)
Console.WriteLine(x);
Console.ReadLine();
}
}
en utilisant System; namespace XmlArraySerialize { /// /// XmlArraySerialize Exemple: Sérialise et désérialise /// un tableau de Person. ///
public class Person
{
public string name;
public string gender;
public int age;
// Noarg constructor needed for compatibility
public Person() { }
public Person(string theName, string theGender, int theAge)
{
name = theName;
gender = theGender;
age = theAge;
}
public override string ToString()
{
return name + " " + gender + " " + age;
}
}
}
Et le fichier XML ...
<?xml version="1.0" standalone="no"?>
<!--Created by ToXml Example in IO-->
<Persons>
<Person ID="1001">
<Name>Susan</Name>
<Gender>F</Gender>
<Age>21</Age>
</Person>
<Person ID="1002">
<Name>Michael</Name>
<Gender>M</Gender>
<Age>25</Age>
</Person>
<Person ID="1003">
<Name>Judy</Name>
<Gender>F</Gender>
<Age>31</Age>
</Person>
<Person ID="1004">
<Name>Chloe</Name>
<Gender>F</Gender>
<Age>27</Age>
</Person>
<Person ID="1005">
<Name>Scott</Name>
<Gender>M</Gender>
<Age>58</Age>
</Person>
<Person ID="1006">
<Name>William</Name>
<Gender>M</Gender>
<Age>41</Age>
</Person>
<Person ID="1007">
<Name>Mary</Name>
<Gender>F</Gender>
<Age>30</Age>
</Person>
</Persons>
De plus, vous mentionnez que c'est une erreur de compilation, mais je ne pense pas que VS dérangera votre fichier XML, où vous mettez le fichier XML? Il ne devrait pas être inclus dans le projet VS (du moins pas besoin de compiler). – xandy
OK, modifié pour inclure la classe Person. Le fichier XML est juste dans le dossier/bin/debug. –
http://stackoverflow.com/questions/10109608/c-sharp-deserialize-xml-to-object-there-is-an-error-in-xml-document-3-2/15620946#15620946 Ce message a la solution. – Savaratkar