using Sy
stem; using Sy
stem.Collections.Generic; using Sy
stem.Linq; using Sy
stem.Text; using Sy
stem.Xml; using Sy
stem.Xml.Serialization; using Sy
stem.IO; using Sy
stem.Data; using Sy
stem.Globalization; #endregion namespace Pay.Util { /// <summary> /// XML操作类 /// </summary> public class XML { #region (public) xml序列化 _XMLSerialize /// <summary> /// xml序列化 /// </summary> /// <p
aram name="obj">obj类</p
aram> /// <returns>string字符串</returns> public static string _XMLSerialize( object obj ) { XmlSerializer xs = new XmlSerializer( obj.GetType() ); StringBuilder strBuidler = new StringBuilder(); XmlWriterSettings setting = new XmlWriterSettings(); setting.OmitXmlDecl
aration = true;//去掉xml版本声明 Sy
stem.Xml.XmlWriter xw = Sy
stem.Xml.XmlWriter.Create( strBuidler,setting ); XmlSerializerNamespaces xmlns = new XmlSerializerNamespaces(); xmlns.Add( string.Empty,string.Empty ); xs.Serialize( xw,obj,xmlns ); xw.Close(); return strBuidler.ToString(); } #endregion #region (public) xml序列化 _ConvertToString /// <summary> /// xml序列化 /// </summary> /// <p
aram name="obj">obj类</p
aram> /// <returns>string字符串</returns> public static string _ConvertToString( object objectToConvert ) { string xml = null; if ( objectToConvert == null ) return xml; Type t = objectToConvert.GetType(); XmlSerializer ser = new XmlSerializer( t ); XmlSerializerNamespaces ns = new XmlSerializerNamespaces(); ns.Add( "","" ); using ( StringWriter writer = new StringWriter( CultureInfo.InvariantCulture ) ) { ser.Serialize( writer,objectToConvert,ns ); xml = writer.ToString(); writer.Close(); } return xml; } #endregion #region (public) xml反序列化 _XMLDeserialize /// <summary> /// xml反序列化 /// </summary> /// <p
aram name="s">字符串string</p
aram> /// <p
aram name="type">obj type</p
aram> /// <returns>obj</returns> public static object _XMLDeserialize( string s,Type type ) { XmlDocument xmlDoc = new XmlDocument(); xmlDoc.LoadXml( s ); s = xmlDoc.DocumentElement.OuterXml; XmlSerializer xs = new XmlSerializer( type ); Stream stream = new Sy
stem.IO.MemoryStream( Sy
stem.Text.ASCIIEncoding.UTF8.GetBytes( s ) ); object obj = xs.Deserialize( stream ); stream.Close(); return obj; } #endregion #region (public) xml反序列化 _XML2DataSet /// <summary> /// xml to dataset /// </summary> /// <p
aram name="xmlData">xml字符串</p
aram> /// <returns>dataset</returns> public static DataSet _XML2DataSet( string xmlData ) { StringReader stream = null; XmlTextReader reader = null; //try //{ DataSet xmlDS = new DataSet(); stream = new StringReader( xmlData ); reader = new XmlTextReader( stream ); xmlDS.
readxml( reader ); if ( reader != null ) { reader.Close(); } return xmlDS; //} //catch (Exception ex) //{ // string strTest = ex.Message; // return null; //} //finally //{ // if (reader != null) // reader.Close(); //} } #endregion #region (public) XML反序列化 _ConvertFil
etoObject /// <summary> /// 读取
文件转化为对象 /// </summary> /// <p
aram name="path">路径</p
aram> /// <p
aram name="objectType">对象类型</p
aram> /// <returns>对象</returns> public static object _ConvertFil
etoObject( string path,Type objectType ) { object converte
dobject = null; if ( path != null && path.Length > 0 ) { using ( FileStream fs = new FileStream( path,FileMode.Open,FileAccess.Read ) ) { XmlSerializer ser = new XmlSerializer( objectType ); converte
dobject = ser.Deserialize( fs ); fs.Close(); } } return converte
dobject; } #endregion #region (public) xml 反序列化 _ConvertXmlToObject /// <summary> /// 将xml
字符串转换为对应的实体 /// </summary> /// <typep
aram name="T">
实体类型</typep
aram> /// <p
aram name="xmlDocument">xml字符串</p
aram> /// <returns>
实体类型对象</returns> public static T _ConvertXmlToObject<T>( string xml ) where T : class,new() { if ( string.IsNullOrEmpty( xml ) ) return new T(); XmlSerializer serializer = new XmlSerializer( typeof( T ) ); T resultObject; using ( TextReader reader = new StringReader( xml ) ) { resultObject = (T)serializer.Deserialize( reader ); } return resultObject; } #endregion #region(public) 对象保存为xml _SaveAsXML /// <summary> /// 把对象序列化为XML 并保存为
文件 /// </summary> /// <p
aram name="objectToConvert">对象</p
aram> /// <p
aram name="path">路径</p
aram> public static void _SaveAsXML( object objectToConvert,string path ) { if ( objectToConvert != null ) { Type t = objectToConvert.GetType(); XmlSerializer ser = new XmlSerializer( t ); using ( StreamWriter writer = new StreamWriter( path ) ) { ser.Serialize( writer,objectToConvert ); writer.Close(); } } } #endregion } }