我试图反序列化以下XML但没有成功。
XML输入文件:
<PERSONS>
<INFO1>No Errors</INFO1><INFO2>Group 12</INFO2><INFO3>TX</INFO3><INFO4>US77002</INFO4>
<PERSON>
<E1>1972/01/21</E1><E2>08:00:12</E2><E8>Jimmy</E8><E10>Smith</E10><E9>4120120212</E9>
<E6><T1>201</T1><T2>Good</T2><T3>1234</T3></E6> <E7><T1>202</T1><T2>Very good</T2><T3>4124</T3></E7> </PERSON>
<PERSON>
<E1>1972/01/21</E1><E2>08:00:12</E2><E8>Jimmy</E8><E10>Smith</E10><E9>4120120212</E9>
<E6><T1>201</T1><T2>Good</T2><T3>1234</T3></E6> <E7><T1>202</T1><T2>Very good</T2><T3>4124</T3></E7> </PERSON>
...
</PERSONS>
我想检索每个人的所有数据以及E6和E7中的T1,T2等。 我怎么能做到这一点?
我尝试使用XmlSerializer进行反序列化,但获得了InvalidOperation异常。
代码段:
private static PersonCollection GetPersonCollection()
{
PersonCollection persons = null;
string path = "personfile.xml";
XmlSerializer serializer = new XmlSerializer(typeof(PersonCollection));
StreamReader reader = new StreamReader(path);
persons = (PersonCollection)serializer.Deserialize(reader);
reader.Close();
return persons;
}
[Serializable()]
public class PersonCollection
{
[System.Xml.Serialization.XmlElement("E1")]
public string E1 { get; set; }
[System.Xml.Serialization.XmlElement("E2")]
public string E2 { get; set; }
[System.Xml.Serialization.XmlElement("E3")]
public string E3 { get; set; }
... // XmlAttribute for T1, T2, T3 ??
}
有什么建议吗?
感谢。