#region 反序列化 /// <summary> /// 反序列化 /// </summary> /// <param name="type">类型</param> /// <param name="xml">XML字符串</param> /// <returns></returns> public static object Deserialize(Type type, XmlDataDocument xmlDataDocument) { try { string xml = xmlDataDocument.InnerXml.ToString(); 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; } } #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