1、新建一个网页,在Page_Load中输入下面的代码: DataTable table = new DataTable(); table.TableName = "Table1"; table.Columns.Add("Name"); DataRow row = table.NewRow(); row["Name"] = "wang"; table.Rows.Add(row); //xml序列化对象 XmlSerializer xmlSerial = new XmlSerializer(typeof(DataTable)); StringWriter sw = new StringWriter(); xmlSerial.Serialize(sw, table); // 序列化table StringReader sr = new StringReader(sw.ToString()); DataTable table1 = (DataTable)xmlSerial.Deserialize(sr); // 反序列化xml Response.Write("字段" + table1.Columns[0].ColumnName + "对应的值为:" + table1.Rows[0][0]);
2、2,输出结果:字段Name对应的值为:wang
3、3,如果直接讲序列化的table字符串输出如下:<?xml version="1.0" encoding="utf-8"?><DataTable> <xs:schema id="NewDataSet" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> <xs:element name="NewDataSet" msdata:IsDataSet="true" msdata:MainDataTable="Table1" msdata:UseCurrentLocale="true"> <xs:complexType> <xs:choice minOccurs="0" maxOccurs="unbounded"> <xs:element name="Table1"> <xs:complexType> <xs:sequence> <xs:element name="Name" type="xs:string" minOccurs="0" /> </xs:sequence> </xs:complexType> </xs:element> </xs:choice> </xs:complexType> </xs:element> </xs:schema> <diffgr:diffgram xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1"> <DocumentElement> <Table1 diffgr:id="Table11" msdata:rowOrder="0" diffgr:hasChanges="inserted"> <Name>wang</Name> </Table1> </DocumentElement> </diffgr:diffgram></DataTable>
4、说明:(1) 一定要注意设置表的名称,否则序列化失败,如 table.TableName = "Table1";(2)使用XmlSerializer对象初始化时,一定要是typeof(DataTable)类型。XmlSerializer xmlSerial = new XmlSerializer(typeof(DataTable));