使用 Linq C# 为 DataTable 的每条记录创建 XML 文件
Posted
技术标签:
【中文标题】使用 Linq C# 为 DataTable 的每条记录创建 XML 文件【英文标题】:create XML file for each record of the DataTable using Linq C# 【发布时间】:2017-02-15 07:05:31 【问题描述】:目前我正在从单个 XML 文件中的数据表中的所有记录创建 XML 文件,我想使用 linq 分别为每个记录创建 XML 文件。
DataTable dtTest = new DataTable();
dtTest.Columns.Add("Name");
dtTest.Columns.Add("NickName");
dtTest.Columns.Add("Code");
dtTest.Columns.Add("reference");
dtTest.Rows.Add("Yash", "POPs", "Vapi", "None1");
dtTest.Rows.Add("shilpa", "shilpa", "valsad", "None2");
dtTest.Rows.Add("Dinesh", "dinu", "pune", "None3");
dtTest.Rows.Add("rahul", "mady", "pardi", "None4");
XDocument xmlDoc = new XDocument(
new XElement(
"File",
from fields in dtTest.AsEnumerable()
select new XElement(
"company_details",
new XElement(
"company",
new XElement(
"Name",
fields.Field<string>("Name")),
new XElement(
"NickName",
fields.Field<string>("NickName"))),
new XElement(
"Details",
new XElement(
"reference",
fields.Field<string>("reference"))))));
string filepath = @"C:\Users\admin\Desktop\test.xml";
xmlDoc.Save(filepath);
【问题讨论】:
【参考方案1】:您可以使用ForEach
方法为每个row
创建xml
DataTable dtTest = new DataTable();
dtTest.Columns.Add("Name");
dtTest.Columns.Add("NickName");
dtTest.Columns.Add("Code");
dtTest.Columns.Add("reference");
dtTest.Rows.Add("Yash", "POPs", "Vapi", "None1");
dtTest.Rows.Add("shilpa", "shilpa", "valsad", "None2");
dtTest.Rows.Add("Dinesh", "dinu", "pune", "None3");
dtTest.Rows.Add("rahul", "mady", "pardi", "None4");
dtTest.AsEnumerable().ToList().ForEach(x => CreateXml(x));
public void CreateXml(DataRow row)
XDocument xmlDoc = new XDocument(
new XElement(
"File",
new XElement(
"company_details",
new XElement(
"company",
new XElement(
"Name",
row.Field<string>("Name")),
new XElement(
"NickName",
row.Field<string>("NickName"))),
new XElement(
"Details",
new XElement(
"reference",
row.Field<string>("reference"))))));
xmlDoc.Save(Server.MapPath(row.Field<string>("Name")) + ".xml");
【讨论】:
以上是关于使用 Linq C# 为 DataTable 的每条记录创建 XML 文件的主要内容,如果未能解决你的问题,请参考以下文章
C# 中的GetEnumerator方法,C# DataTable几个常用的查询表达式,C#的lINQ怎么用干啥用的
在 C# 中使用 Linq 创建一个仅包含唯一值的 DataTable