将嵌套的xml反序列化为C#对象
发布时间:2020-12-16 07:56:36 所属栏目:百科 来源:网络整理
导读:我正在从http Web请求中检索xml数据并将数据反序列化为对象. 这是一个示例xml结构. users user name.../name orders order number.../number /order ... /orders /user user name.../name orders/orders /user .../users 我有四节课 public class Users{ [Xm
我正在从http Web请求中检索xml数据并将数据反序列化为对象.
这是一个示例xml结构. <users> <user> <name>...</name> <orders> <order> <number>...</number> </order> ... </orders> </user> <user> <name>...</name> <orders></orders> </user> ... </users> 我有四节课 public class Users { [XmlElement("user")] public User[] UserList { get; set; } } public class User { [XmlElement("name")] public string Name { get; set; } [XmlArray("orders")] public Orders OrderList { get; set; } } public class Orders { [XmlElement("order")] public Order[] Order { get; set; } } public class Order { [XmlElement("number")] public string Number { get; set; } } 我觉得三个类应该足够了 – 在User类中有一个Order []并摆脱’Orders’类.那可能吗?无论我尝试什么都行不通. 谢谢.
这应该工作
XmlSerializer ser = new XmlSerializer(typeof(Users)); var u = (Users)ser.Deserialize(stream); [XmlRoot("users")] public class Users { [XmlElement("user")] public User[] UserList { get; set; } } public class User { [XmlElement("name")] public string Name { get; set; } [XmlArray("orders"),XmlArrayItem("order")] public Order[] OrderList { get; set; } } [XmlRoot("order")] public class Order { [XmlElement("number")] public string Number { get; set; } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |