string strXml = "<?xml version=\"1.0\" encoding=\"utf-8\"?><Root><Users><User UserId=\"1\" UserName=\"王二\"/><User UserId=\"2\" UserName=\"张三\"/></Users></Root>";
var model = this.GetXmlObject(strXml, typeof(Root)) as Root;
//<?xml version="1.0" encoding="utf-8"?>
/// <summary>
/// xml标签反序列化为对象
/// </summary>
/// <param name="xml">xml格式字符串</param>
/// <param name="type">转换类型</param>
/// <returns>返回xml标签反序列化object对象</returns>
public object GetXmlObject(string xml, Type type)
{
try
{
using (StringReader rdr = new StringReader(xml))
{
XmlSerializer serializer = new XmlSerializer(type);
return serializer.Deserialize(rdr);
}
}
catch (Exception)
{
return null;
}
}
[Serializable]
[XmlRoot("Root")]
public class Root
{
[XmlArray("Users")]
[XmlArrayItem("User")]
public List<User> Users { get; set; }
//[XmlElement("User")]
}
[Serializable]
public class User
{
[XmlAttribute("UserId")]
public string UserId { get; set; }
[XmlAttribute("UserName")]
public string UserName { get; set; }
}