我是C#的新手。我现在正在上课,我们的一个例子不会编译。 Visual Studio 2010给我这个错误:XML文档中有错误(3,2)。C#XML序列化/反序列化
如何编辑XML文件以使其与代码一起工作?
谢谢你的帮助!
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();
}
}
using System; namespace XmlArraySerialize { /// /// XmlArraySerialize示例:序列化和反序列化/// 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;
}
}
}
和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>
你能否也发布“Person”类的代码?此外,你提到它是编译错误,但我不认为VS会打扰你的XML文件,你把XML文件放在哪里?它不应该包含在VS项目中(至少不需要编译)。 – xandy 2010-11-19 00:23:11
好的,编辑后包含Person类。 XML文件位于/ bin/debug文件夹中。 – 2010-11-19 00:31:52
http://stackoverflow.com/questions/10109608/c-sharp-deserialize-xml-to-object-there-is-an-error-in-xml-document-3-2/15620946#15620946 这篇文章有解决方案。 – Savaratkar 2013-03-25 17:26:22