c#中从url到对象的XML反序列化

本文关键字:XML 反序列化 对象 中从 url | 更新日期: 2023-09-27 18:16:29

url中的xml是这样的

<restaurantFoodImpls>
 <RestaurantFood Price="1689.7594" ID="426" Description="quis egreddior glavans brevens, si eggredior. vobis e fecundio, fecundio, et quoque nomen gravum parte volcans">
  <foodItem Name="Frances93" ID="548"/>
  <restaurant Name="Alana59" PhoneNumber="7954016342" MobileNumber="372206-3626" LastName="Hickman" ID="1" FirstName="Gabrielle"/>
 </RestaurantFood>
 <RestaurantFood Price="14.225095" ID="520" Description="in plorum egreddior plorum e pladior in linguens essit. novum habitatio Versus plurissimum volcans linguens estum.">   
  <foodItem Name="Frances93" ID="548"/>
  <restaurant Name="Alana59" PhoneNumber="7954016342" MobileNumber="372206-3626" LastName="Hickman" ID="1" FirstName="Gabrielle"/>
 </RestaurantFood>
</restaurantFoodImpls>

如何解析成对象使用c# ?
我已经尝试使用反序列化器,但我的问题是,我想从XML的属性中读取元素的属性,我无法得到它们。

c#中从url到对象的XML反序列化

var stream = File.Open(filename, FileMode.Open);
XmlSerializer ser = new XmlSerializer(typeof(RestaurantFoodImpls));
var result = ser.Deserialize(stream) as RestaurantFoodImpls;

public class FoodItem
{
    [XmlAttribute]
    public string Name { get; set; }
    [XmlAttribute]
    public string ID { get; set; }
}
public class Restaurant
{
    [XmlAttribute]
    public string Name { get; set; }
    [XmlAttribute]
    public string PhoneNumber { get; set; }
    [XmlAttribute]
    public string MobileNumber { get; set; }
    [XmlAttribute]
    public string LastName { get; set; }
    [XmlAttribute]
    public string ID { get; set; }
    [XmlAttribute]
    public string FirstName { get; set; }
}
public class RestaurantFood
{
    [XmlAttribute]
    public string Price { get; set; }
    [XmlAttribute]
    public string ID { get; set; }
    [XmlAttribute]
    public string Description { get; set; }
    [XmlElement("foodItem")]
    public FoodItem foodItem { get; set; }
    [XmlElement("restaurant")]
    public Restaurant restaurant { get; set; }
}
[XmlRoot("restaurantFoodImpls")]
public class RestaurantFoodImpls
{
    [XmlElement("RestaurantFood")]
    public List<RestaurantFood> RestaurantFood { get; set; }
}