根据xml文件名获取xml数据并转化为实体。
1.定义一个xml文件。
1 <?xml version="1.0" encoding="utf-8" ?> 2 <UserManager xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" > 3 <User> 4 <UserName>王三</UserName> 5 <Age>18</Age> 6 <Gender>male</Gender> 7 </User> 8 <User> 9 <UserName>李四</UserName> 10 <Age>18</Age> 11 <Gender>male</Gender> 12 </User> 13 <User> 14 <UserName>王五</UserName> 15 <Age>18</Age> 16 <Gender>male</Gender> 17 </User> 18 </UserManager>
2.定义Helper类。
1 public class NickZHao 2 { 3 public static string GetXmlPath(string XmlName) 4 { 5 string filePath = string.Empty; 6 filePath = System.Web.HttpContext.Current.Server.MapPath(string.Concat("", XmlName+".xml")); 7 8 return filePath; 9 } 10 11 public static List<T> XmlToEntityList<T>(string XmlName) 12 { 13 string xmlPath = GetXmlPath(XmlName); 14 XmlSerializer serializer = new XmlSerializer(typeof(List<T>)); 15 Object obj = new Object(); 16 17 if (File.Exists(xmlPath)) 18 { 19 using (StreamReader reader = new StreamReader(xmlPath)) 20 { 21 try 22 { 23 obj = serializer.Deserialize(reader); 24 } 25 catch (Exception ex) 26 { 27 //Here put your code witch dealing with exception 28 } 29 } 30 } 31 return (List<T>)obj; 32 } 33 34 public static T XmlToEntity<T>(string XmlName) 35 { 36 string xmlPath = GetXmlPath(XmlName); 37 XmlSerializer serializer = new XmlSerializer(typeof(T)); 38 Object obj = new Object(); 39 40 if (File.Exists(xmlPath)) 41 { 42 using (StreamReader reader = new StreamReader(xmlPath)) 43 { 44 try 45 { 46 obj = serializer.Deserialize(reader); 47 } 48 catch (Exception ex) 49 { 50 //Here put your code witch dealing with exception 51 } 52 } 53 } 54 return (T)obj; 55 } 56 }
3.调用
UserManager userManager = NickZHao.XmlToEntity<UserManager>("User"); [XmlRoot(ElementName = "UserManager")] public class UserManager { [XmlElement(ElementName = "User")] public List<User> UserList { get; set; } } public class User { public string UserName { get; set; } public int Age { get; set; } public string Gender { get; set; } }
注意:在定义实体类是记得标记根节点
[XmlRoot(ElementName = "UserManager")]
和节点元素
[XmlElement(ElementName = "User")]
海的呐喊