C# 中的反序列化 XML

本文关键字:XML 反序列化 | 更新日期: 2023-09-27 18:28:20

有人可以帮助解决这个问题吗?我已经为来自 XML 的反序列化数据创建了类。但是当我编程编译VS时,向我显示此异常无效操作异常:XML文档(2,2(中存在错误,因此我想我在类存储中定义了属性Month。我试图输入 int,但没有成功,请帮助我...这是问题的代码:

<?xml version="1.0" encoding="utf-8" ?> 
<Store>
 <StoreS Month="2">
    <Amount>159</Amount>
    <Mod_date> 20.3.2014 18:19:18</Mod_date>
  </StoreS>
  <StoreS Month="2">
    <Amount>270</Amount>
    <Mod_date> 20.3.2014 18:19:40</Mod_date>
  </StoreS>
  </Store>

我要反序列化数据的类是这样编写的:

 [XmlRoot("Store"),XmlType("Store")]
 public class Store 
 {
     [XmlElement("StoreS")]
     public List<RecordStore> StoreS = new List<RecordStore>();
     [XmlAttribute("Month")]
     public string Month { get; set; }
  }
public class RecordStore
{
    [XmlElement("Amount")]
    public int amount{get;set;}
    [XmlElement("Mod_date")]
    public DateTime mod_date { get; set; }
}

非常感谢您的帮助。

C# 中的反序列化 XML

您的xml的日期时间格式不正确,例如,它应该像2014-03-21T00:00:00

当你序列化时,

你可以反序列化对象

    public void Serialize<T>(T details)
    {
        XmlSerializer serializer = new XmlSerializer(typeof(T));
        using (TextWriter writer = new StreamWriter("Xml.xml"))
        {
            serializer.Serialize(writer, details);
        }
    }
    public void Deserialize<T>(out T obj)
    {            
        XmlSerializer serializer = new XmlSerializer(typeof (T));
        using (TextReader reader = new StreamReader("Xml.xml"))
        {
            obj = (T)serializer.Deserialize(reader);
        }
    }