如何将项添加到ObservableCollection,从xml文件返回?

时间:2015-12-07 07:37:36

标签: c# xml asp.net-mvc-4 deserialization observablecollection

我从xml文件(本地)获取数据

我已经组织了我的模型,如下所示(这是其中的一部分)

[XmlRoot(ElementName="Availability")]
public class Availability
{
    [XmlElement(ElementName = "Departure")]
    public List<Departure> departure { get; set; }
}


//availability ends here

[XmlRoot(ElementName="CruiseProduct")]
public class CruiseProduct
{
    [XmlElement(ElementName = "Availability")]
    public Availability availability { get; set; }

}

这是我的控制器

XElement cElement = XElement.Load(Server.MapPath("~/XmlFiles/CruiseData/cruiseprodutstwo.xml"));
var getdataa = cElement.Elements("CruiseProduct");


ObservableCollection<CruiseProduct> ResultantCollection = new ObservableCollection<CruiseProduct>();
foreach(var itmz in getdataa)
{
      ResultantCollection.Add(new CruiseProduct
      {

      });
}

如何向此添加数据?不知道。这是方式还是,有没有办法在不使用ObservableCollection的情况下DeserializeObject lik json?

1 个答案:

答案 0 :(得分:0)

听起来想要从文件中反序列化xml。 以下代码可以帮助您入门。 How to: Read Object Data from an XML File (C# and Visual Basic)

假设您的XML有一些根节点:

[XmlRoot(ElementName="Root")]
public class Root
{
  public IEnumerable<CruiseProduct> CruiseProducts{ get; set; }
}

XmlSerializer serializer = new XmlSerializer(typeof(Root));
using (StreamReader file = new System.IO.StreamReader(Server.MapPath("~/XmlFiles/CruiseData/cruiseprodutstwo.xml")))
{
  var data = (Root)serializer.Deserialize(file);
  var observablecruiseProducts = new ObservableCollection<CruiseProduct>(data.CruiseProducts);
}