XML is transformed between the entity class, Datatable,list, and the following is the Xmlutil class, which comes from the network and is slightly modified.
Using system;using system.collections.generic;using system.linq;using system.text;using System.IO;using System.Data; Using system.xml;using System.Xml.Serialization; <summary>///serialization and deserialization of XML//</summary>public class xmlutil{#region deserialization///<summary>// Deserialization///</summary>//<param name= "type" > Type </param>//<param name= "xml" >xml string </pa ram>//<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>//deserialization///</summary>//<param name= "type" ></param>///&L T;param name= "xml" ></param>///<returns></retUrns> public static object deserialize (type type, stream stream) {XmlSerializer xmldes = new Xmlserialize R (type); Return xmldes. Deserialize (stream); } #endregion #region Serialization///<summary>//serialization///</summary>//<param name= "type" > Type </param>//<param name= "obj" > Objects </param>//<returns></returns> public static S Tring Serializer (Type type, Object obj) {MemoryStream Stream = new MemoryStream (); XmlSerializer XML = new XmlSerializer (type); try {//serialization of the object XML. Serialize (Stream, obj); } catch (InvalidOperationException) {throw; } stream.position = 0; StreamReader sr = new StreamReader (Stream); String str = Sr. ReadToEnd (); Sr. Dispose (); Stream.dispose (); return str; } #endregion}
Here is the test code:
1. Converting entity objects to XML
1 Public classStudent2 {3 Public stringName {Set;Get; }4 Public intAge {Set;Get; }5 }6 7Student STU1 =NewStudent () {Name ="Okbase", age =Ten };8 stringXML = Xmlutil.serializer (typeof(Student), STU1);9Console.Write (XML);
2. Converting XML to entity objects
1 Student stu2 = xmlutil.deserialize (typeof as Student; 2 console.write (string. Format (" name: {0}, Age: {1}", STU2. Name, STU2. Age));
3. DataTable conversion to XML
1 //generate a DataTable object for testing2DataTable DT1 =NewDataTable ("mytable");//The DataTable name must be specified3 4Dt1. Columns.Add ("dosage",typeof(int));5Dt1. Columns.Add ("Drug",typeof(string));6Dt1. Columns.Add ("Patient",typeof(string));7Dt1. Columns.Add ("Date",typeof(DateTime));8 9 //Adding RowsTenDt1. Rows.Add ( -,"indocin","David", DateTime.Now); OneDt1. Rows.Add ( -,"Enebrel","Sam", DateTime.Now); ADt1. Rows.Add (Ten,"hydralazine","Christoff", DateTime.Now); -Dt1. Rows.Add ( +,"combivent","Janet", DateTime.Now); -Dt1. Rows.Add ( -,"Dilantin","Melanie", DateTime.Now); the - //Serialization of -XML = Xmlutil.serializer (typeof(DataTable), DT1); -Console.Write (XML);
4. XML conversion to DataTable
1 //deserialization2DataTable DT2 = Xmlutil.deserialize (typeof(DataTable), XML) asDataTable;3 4 //Output Test Results5 foreach(DataRow DrinchDT2. Rows)6 {7 foreach(DataColumn ColinchDT2. Columns)8 {9Console.Write (Dr[col]. ToString () +" ");Ten } One AConsole.Write ("\ r \ n"); -}
5. list conversion to XML
1 //generate a list object for testing2List<student> List1 =NewList<student> (3);3 4List1. ADD (NewStudent () {Name ="Okbase", age =Ten });5List1. ADD (NewStudent () {Name ="csdn", age = the });6 //Serialization of7XML = Xmlutil.serializer (typeof(list<student>), list1);8Console.Write (XML);
6. Convert XML to List
1 list<student> list2 = xmlutil.deserialize (typeof as list<student>; 2 foreach inch list2) 3 {4 " , " + stu. Age.tostring ()); 5 }
C # XML and entity classes convert to and from each other (serialization and deserialization)