datatable和xml转换 2

来源:互联网 发布:波特兰州立大学知乎 编辑:程序博客网 时间:2024/04/28 19:31
  1. using System;  
  2. using System.Collections.Generic;  
  3. using System.Linq;  
  4. using System.Text;  
  5. using System.Data;  
  6. namespace Test2  
  7. {  
  8.     class Program  
  9.     {  
  10.         static void Main(string[] args)  
  11.         {  
  12.             //1.将DataTable写入Xml  
  13.             List<Person> list = new List<Person> {   
  14.                     new Person(){Id=1,Name="小明"},  
  15.                     new Person(){Id=2,Name="小华"}  
  16.             };  
  17.             DataTable dt = new DataTable("MatrixInfo");  
  18.             DataColumn dc1 = new DataColumn("ID");  
  19.             DataColumn dc2 = new DataColumn("Name");  
  20.             dt.Columns.Add(dc1);  
  21.             dt.Columns.Add(dc2);  
  22.             foreach(Person p in list){  
  23.                 DataRow dr = dt.NewRow();  
  24.                 dr["ID"] = p.Id;  
  25.                 dr["Name"] = p.Name;  
  26.                 dt.Rows.Add(dr);  
  27.             }  
  28.             System.IO.StringWriter writer = new System.IO.StringWriter();  
  29.             dt.WriteXml(writer);  
  30.             string xmlstr= writer.ToString();  
  31.             writer.Close();  
  32.             Console.WriteLine(xmlstr);  
  33.             //2.将Xml读入DataTable, 切记MatrixInfo,ID,Name. 即表名, 列名要一一对应  
  34.             DataTable dtStep2 = new DataTable("MatrixInfo");  
  35.             DataColumn dc1Step2 = new DataColumn("ID");  
  36.             DataColumn dc2Step2 = new DataColumn("Name");  
  37.             dtStep2.Columns.Add(dc1Step2);  
  38.             dtStep2.Columns.Add(dc2Step2);  
  39.             System.IO.StringReader reader = new System.IO.StringReader(xmlstr);  
  40.             dtStep2.ReadXml(reader);  
  41.             Console.WriteLine("测试转换结果:");  
  42.             foreach (DataRow drS2 in dtStep2.Rows) {  
  43.                 Console.WriteLine(drS2[0]+"/t"+drS2[1]);  
  44.             }  
  45.             Console.ReadLine();  
  46.         }  
  47.     }  
  48.     public class Person {  
  49.         public int Id { getset; }  
  50.         public string Name { getset; }  
  51.     }  
  52. }  

 

起初担心, 无法转换<>等特殊字符, 后来发现,

dt->xml <会自动转成&lt;   ,    >会自动转成&gt;   

xml->dt  &lt;->  '<'   ,    &gt;->  '>'

赞一个

 

 

0 0
原创粉丝点击