Lưu biến DataTable ra file XML
- Lưu DataTabe ra file XML không cần cấu trúc
DataTable dt = new DataTable();
// cấu trúc 1 biến DataTable
// Nhiều dòng , nhiều cột, có kiểu dữ liệu tương ứng cho mỗi cột
//thêm cột
dt.Columns.Add("STT", typeof(int));
dt.Columns.Add("HoTen", typeof(string));
//thêm row
dt.Rows.Add(1,"A");
dt.Rows.Add(2, "B");
//
dt.Namespace = "dulieu";
dt.TableName = "hocsinh";
dt.WriteXml("D:\\data.xml"); // lưu không cần cấu trúc
Kết quả XML lưu
<?xml version="1.0" standalone="yes"?>
<DocumentElement xmlns="dulieu">
<hocsinh>
<STT>1</STT>
<HoTen>A</HoTen>
</hocsinh>
<hocsinh>
<STT>2</STT>
<HoTen>B</HoTen>
</hocsinh>
</DocumentElement>
- Lưu DataTabe ra file XML có cấu trúc
DataTable dt = new DataTable();
// cấu trúc 1 biến DataTable
// Nhiều dòng , nhiều cột, có kiểu dữ liệu tương ứng cho mỗi cột
//thêm cột
dt.Columns.Add("STT", typeof(int));
dt.Columns.Add("HoTen", typeof(string));
//thêm row
dt.Rows.Add(1,"A");
dt.Rows.Add(2, "B");
//
dt.Namespace = "dulieu";
dt.TableName = "hocsinh";
dt.WriteXml("D:\\data.xml", XmlWriteMode.WriteSchema); // lưu có cấu trúc
Kết quả XML lưu có thêm schema
? Có có schema để làm cái gì: để khi nạp ngược lại (file xml) vào C# chuyển sang Datatable tự động có cấu trúc giống như file xml. Xem ví dụ nạp file xml vào biến DataTable
<?xml version="1.0" standalone="yes"?>
<NewDataSet xmlns="dulieu">
<xs:schema id="NewDataSet" targetNamespace="dulieu" xmlns:mstns="dulieu" xmlns="dulieu" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" attributeFormDefault="qualified" elementFormDefault="qualified">
<xs:element name="NewDataSet" msdata:IsDataSet="true" msdata:MainDataTable="dulieu_x003A_hocsinh" msdata:UseCurrentLocale="true">
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="hocsinh">
<xs:complexType>
<xs:sequence>
<xs:element name="STT" type="xs:int" minOccurs="0" />
<xs:element name="HoTen" type="xs:string" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:choice>
</xs:complexType>
</xs:element>
</xs:schema>
<hocsinh>
<STT>1</STT>
<HoTen>A</HoTen>
</hocsinh>
<hocsinh>
<STT>2</STT>
<HoTen>B</HoTen>
</hocsinh>
</NewDataSet>
Ví dụ nạp file xml vào biến DataTable
DataTable dtGet = new DataTable();
dtGet.ReadXml("D:\\data.xml"); // nạp file có cấu trúc