- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Data;
- namespace Test2
- {
- class Program
- {
- static void Main(string[] args)
- {
- //1.将DataTable写入Xml
- List<Person> list = new List<Person> {
- new Person(){Id=1,Name="小明"},
- new Person(){Id=2,Name="小华"}
- };
- DataTable dt = new DataTable("MatrixInfo");
- DataColumn dc1 = new DataColumn("ID");
- DataColumn dc2 = new DataColumn("Name");
- dt.Columns.Add(dc1);
- dt.Columns.Add(dc2);
- foreach(Person p in list){
- DataRow dr = dt.NewRow();
- dr["ID"] = p.Id;
- dr["Name"] = p.Name;
- dt.Rows.Add(dr);
- }
- System.IO.StringWriter writer = new System.IO.StringWriter();
- dt.WriteXml(writer);
- string xmlstr= writer.ToString();
- writer.Close();
- Console.WriteLine(xmlstr);
- //2.将Xml读入DataTable, 切记MatrixInfo,ID,Name. 即表名, 列名要一一对应
- DataTable dtStep2 = new DataTable("MatrixInfo");
- DataColumn dc1Step2 = new DataColumn("ID");
- DataColumn dc2Step2 = new DataColumn("Name");
- dtStep2.Columns.Add(dc1Step2);
- dtStep2.Columns.Add(dc2Step2);
- System.IO.StringReader reader = new System.IO.StringReader(xmlstr);
- dtStep2.ReadXml(reader);
- Console.WriteLine("测试转换结果:");
- foreach (DataRow drS2 in dtStep2.Rows) {
- Console.WriteLine(drS2[0]+"/t"+drS2[1]);
- }
- Console.ReadLine();
- }
- }
- public class Person {
- public int Id { get; set; }
- public string Name { get; set; }
- }
- }
起初担心, 无法转换<>等特殊字符, 后来发现,
dt->xml <会自动转成< , >会自动转成>
xml->dt <-> '<' , >-> '>'
赞一个