[技術] 將DataTable轉換成XML格式 (Converting DataTable to XML)
# 使用WriteXml方法
1: XElement tElement = new XElement("tTable", "");
2: using (XmlWriter tWriter = tElement.CreateWriter())
3: {
4: tTable.WriteXml(tWriter, XmlWriteMode.IgnoreSchema, false);
5: //pDataTable.WriteXml(tWriter, XmlWriteMode.IgnoreSchema, false);
6: }
7: XElement tElement2 = new XElement("DataTable", tElement.Element("DocumentElement").Elements());
要注意的是,若使用WriteXml方法,當DataTable有欄位為Null時,它便不會把那個欄位組成XML tag。
若想要每個欄位都組成XML tag,便要用迴圈的方式將欄位一個一個組成tag。
1: private XElement DataTableToXml(DataTable pAttributeTable, string tParentTag)
2: {
3: if (pAttributeTable == null)
4: {
5: return null;
6: }
7:
8: XElement tParent = null;
9: try
10: {
11: tParent = new XElement(tParentTag); // 集合Tag的名字
12:
13: //每個DataRow為屬性分類
14: foreach (DataRow tRow in pAttributeTable.Rows)
15: {
16: XElement tChild = new XElement("DataRow");
17: //每個DataRow的DataColumn為屬性分類裡的項目
18: foreach (DataColumn tColumn in pAttributeTable.Columns)
19: {
20: tChild.Add(new XElement(tColumn.ColumnName, tRow[tColumn]));
21: }
22: tParent.Add(tChild);
23: }
24:
25: }
26:
27: catch (Exception ex)
28: {
29: throw ex;
30: }
31: return tParent;
32: }