2

我想编写一个将 asp.net 数据表转换为 XML 文档的方法。实现它的最佳方法是什么?道歉是非常基本的问题。

提前致谢。

4

2 回答 2

1

看看使用DataTable.WriteXml 方法

将 DataTable 的当前内容写入 XML。

更具体地说,使用XmlWriteMode 枚举的重载

使用选项WriteSchema

将 DataSet 的当前内容写入 XML 数据,并将关系结构作为内联 XSD 架构。如果 DataSet 只有一个没有数据的架构,则只写入内联架构。如果 DataSet 没有当前架构,则不写入任何内容。

于 2013-06-15T07:58:53.187 回答
1

您可以使用"WriteXml"方法将数据表转换为 XML 文档。

例子:

DataTable dt = new DataTable("Product");
 DataColumn dc = new DataColumn();
 dc.ColumnName = "ProductID";
 dc.DataType = typeof(int);
 dt.Columns.Add(dc);

 DataColumn dc2 = new DataColumn();
 dc2.ColumnName = "ProductName";
 dc2.DataType = typeof(string);
 dt.Columns.Add(dc2);
 dt.Rows.Add(new object[] { "1", "CShap In Depth By Jon Skeet" })
 dt.WriteXml("{path to save your xml file}\\documentname.xml");

但是您仍然想要扩展方法,您可以使用以下示例代码(未测试)

(取自http://www.extensionmethod.net/csharp/datatable/toxml

public static XDocument ToXmlDocument(this DataTable dataTable, string rootName)
        {
            var XmlDocument = new XDocument
            {
                Declaration = new XDeclaration("1.0", "utf-8", "")
            };
            XmlDocument.Add(new XElement(rootName));
            foreach (DataRow row in dataTable.Rows)
            {
                XElement element = null;
                if (dataTable.TableName != null)
                {
                   element = new XElement(dataTable.TableName);
                }
                foreach (DataColumn column in dataTable.Columns)
                {
                    element.Add(new
                XElement(column.ColumnName, row[column].ToString().Trim(' ')));
                }
                if (XmlDocument.Root != null) XmlDocument.Root.Add(element);
            }

            return XmlDocument;
        }
    }
于 2013-06-15T08:05:52.057 回答