c# XML和实体类之间相互转换
2015-05-08 23:39
447 查看
public class XmlUtil { #region 反序列化 /// <summary> /// 反序列化 /// </summary> /// <param name="type">类型</param> /// <param name="xml">XML字符串</param> /// <returns></returns> public static object Deserialize(Type type, string xml) { try { using (StringReader sr = new StringReader(xml)) { XmlSerializer xmldes = new XmlSerializer(type); return xmldes.Deserialize(sr); } } catch (Exception e) { return null; } } /// <summary> /// 反序列化 /// </summary> /// <param name="type"></param> /// <param name="xml"></param> /// <returns></returns> public static object Deserialize(Type type, Stream stream) { XmlSerializer xmldes = new XmlSerializer(type); return xmldes.Deserialize(stream); } #endregion #region 序列化XML文件 /// <summary> /// 序列化XML文件 /// </summary> /// <param name="type">类型</param> /// <param name="obj">对象</param> /// <returns></returns> public static string Serializer(Type type, object obj) { MemoryStream Stream = new MemoryStream(); //创建序列化对象 XmlSerializer xml = new XmlSerializer(type); try { //序列化对象 xml.Serialize(Stream, obj); } catch (InvalidOperationException) { throw; } Stream.Position = 0; StreamReader sr = new StreamReader(Stream); string str = sr.ReadToEnd(); return str; } #endregion #region 将XML转换为DATATABLE /// <summary> /// 将XML转换为DATATABLE /// </summary> /// <param name="FileURL"></param> /// <returns></returns> public static DataTable XmlAnalysisArray() { try { string FileURL = System.Configuration.ConfigurationManager.AppSettings["Client"].ToString(); DataSet ds = new DataSet(); ds.ReadXml(FileURL); return ds.Tables[0]; } catch (Exception ex) { System.Web.HttpContext.Current.Response.Write(ex.Message.ToString()); return null; } } /// <summary> /// 将XML转换为DATATABLE /// </summary> /// <param name="FileURL"></param> /// <returns></returns> public static DataTable XmlAnalysisArray(string FileURL) { try { DataSet ds = new DataSet(); ds.ReadXml(FileURL); return ds.Tables[0]; } catch (Exception ex) { System.Web.HttpContext.Current.Response.Write(ex.Message.ToString()); return null; } } #endregion #region 获取对应XML节点的值 /// <summary> /// 摘要:获取对应XML节点的值 /// </summary> /// <param name="stringRoot">XML节点的标记</param> /// <returns>返回获取对应XML节点的值</returns> public static string XmlAnalysis(string stringRoot, string xml) { if (stringRoot.Equals("") == false) { try { XmlDocument XmlLoad = new XmlDocument(); XmlLoad.LoadXml(xml); return XmlLoad.DocumentElement.SelectSingleNode(stringRoot).InnerXml.Trim(); } catch (Exception ex) { } } return ""; } #endregion }
</pre><pre code_snippet_id="662361" snippet_file_name="blog_20150508_3_1990479" name="code" class="html"><pre name="code" class="html"> private void button1_Click(object sender, EventArgs e) { //把XML文件转换为对应的实体类 string xml = @"<Depart> <DepartID>123</DepartID> <PerSons> <PerSon> <name>张三</name> <age>3</age> </PerSon> <PerSon> <name>李斯</name> <age>56</age> </PerSon> </PerSons> </Depart> "; var Info = (Depart)XmlUtil.Deserialize(typeof(Depart), xml); MessageBox.Show(Info.DepartID); } private void button2_Click(object sender, EventArgs e) { //把实体类转换为XML Depart dp = new Depart(); dp.DepartID = "qq"; dp.DepartID = "123"; PerSon p1 = new PerSon(); p1.name = "zhang"; p1.age = "4"; dp.PerSons[0] = p1; string resutl=XmlUtil.Serializer(typeof(Depart), dp); MessageBox.Show(resutl); } } public class Depart { public string DepartID; public PerSon[] PerSons=new PerSon[2]; } public class PerSon { public string name; public string age; }
相关文章推荐
- c# XML和实体类之间相互转换(序列化和反序列化)
- c# XML和实体类之间相互转换(序列化和反序列化)
- c# XML和实体类之间相互转换(序列化和反序列化)
- c# XML和实体类之间相互转换(序列化和反序列化)
- c# XML和实体类之间相互转换(序列化和反序列化)
- c# XML和实体类之间相互转换(序列化和反序列化)
- c# XML和实体类之间相互转换
- c# XML和实体类之间相互转换(序列化和反序列化)
- c# XML和实体类之间相互转换(序列化和反序列化)
- c# XML和实体类之间相互转换(序列化和反序列化)
- c# XML和实体类之间相互转换(序列化和反序列化)
- [Unity]C#中 将XML和实体类之间进行相互转换的工具类
- c# XML和实体类之间相互转换(序列化和反序列化)
- 用C#实现XML和实体类之间序列化和反序列化相互转换
- c# XML和实体类之间相互转换(序列化和反序列化)
- c# XML和实体类之间相互转换(序列化和反序列化)(转)
- C#实现XML和实体类之间相互转换:序列化和反序列化
- C#实现XML与实体类之间相互转换的方法(序列化与反序列化)
- C#对象与XMl文件之间的相互转换(转)
- C# XML与Json之间相互转换实例详解