我想编写一个将 asp.net 数据表转换为 XML 文档的方法。实现它的最佳方法是什么?道歉是非常基本的问题。
提前致谢。
将 DataTable 的当前内容写入 XML。
更具体地说,使用XmlWriteMode 枚举的重载
使用选项WriteSchema
将 DataSet 的当前内容写入 XML 数据,并将关系结构作为内联 XSD 架构。如果 DataSet 只有一个没有数据的架构,则只写入内联架构。如果 DataSet 没有当前架构,则不写入任何内容。
您可以使用"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;
}
}