【问题标题】:create XML file for each record of the DataTable using Linq C#使用 Linq C# 为 DataTable 的每条记录创建 XML 文件
【发布时间】: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);  

【问题讨论】:

    标签: c# xml linq


    【解决方案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");
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多