C# c语言中多节点到数据表的XML#

C# c语言中多节点到数据表的XML#,c#,xml,visual-studio,C#,Xml,Visual Studio,有没有办法将xml文件的导入映射到数据集? 例如,在我的例子中,我只想导入“DatiAnagrafici”并将“DataNascita”子节点和“indirizzo”添加到同一个表中 使用Xml Linq,代码如下所示: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.IO; using System.Xml; using System.Xml.L

有没有办法将xml文件的导入映射到数据集? 例如,在我的例子中,我只想导入“DatiAnagrafici”并将“DataNascita”子节点和“indirizzo”添加到同一个表中


使用Xml Linq,代码如下所示:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.Xml;
using System.Xml.Linq;
using System.Data;

namespace ConsoleApplication1
{
    class Program
    {
        const string FILENAME = @"c:\temp\test.xml";
        static void Main(string[] args)
        {
            DataTable dt = new DataTable();
            dt.Columns.Add("Giorno", typeof(int));
            dt.Columns.Add("Mese", typeof(int));
            dt.Columns.Add("Anno", typeof(int));
            dt.Columns.Add("Via", typeof(string));
            dt.Columns.Add("Comune", typeof(string));
            dt.Columns.Add("Provincia", typeof(string));
            dt.Columns.Add("Cap", typeof(int));


            XDocument doc = XDocument.Load(FILENAME);
            List<XElement> datiAnagraficis = doc.Descendants("DatiAnagrafici").ToList();

            foreach(XElement datiAnagrafici in datiAnagraficis)
            {
                int giorno = (int)datiAnagrafici.Descendants("Giorno").FirstOrDefault();
                int mese = (int)datiAnagrafici.Descendants("Mese").FirstOrDefault();
                int anno = (int)datiAnagrafici.Descendants("Anno").FirstOrDefault();
                string via = (string)datiAnagrafici.Descendants("Via").FirstOrDefault();
                string comune = (string)datiAnagrafici.Descendants("Comune").FirstOrDefault();
                string provincia = (string)datiAnagrafici.Descendants("Provincia").FirstOrDefault();
                int cap = (int)datiAnagrafici.Descendants("Cap").FirstOrDefault();

                dt.Rows.Add(new object[] { giorno, mese, anno, via, comune, provincia, cap });

            }
        }
    }
 }
使用系统;
使用System.Collections.Generic;
使用System.Linq;
使用系统文本;
使用System.IO;
使用System.Xml;
使用System.Xml.Linq;
使用系统数据;
命名空间控制台应用程序1
{
班级计划
{
常量字符串文件名=@“c:\temp\test.xml”;
静态void Main(字符串[]参数)
{
DataTable dt=新的DataTable();
添加(“Giorno”,typeof(int));
dt.Columns.Add(“Mese”,typeof(int));
添加(“Anno”,类型(int));
添加(“Via”,typeof(string));
添加(“Comune”,typeof(string));
添加(“省”,类型(字符串));
添加(“Cap”,类型(int));
XDocument doc=XDocument.Load(文件名);
List datiAnagraficis=doc.substands(“DatiAnagrafici”).ToList();
foreach(datiAnagrafici中的XElement datiAnagrafici)
{
int giorno=(int)datiAnagrafici.subjections(“giorno”).FirstOrDefault();
int-mese=(int)datiAnagrafici.subjections(“mese”).FirstOrDefault();
int anno=(int)datiAnagrafici.subjections(“anno”).FirstOrDefault();
string via=(string)datiAnagrafici.subjections(“via”).FirstOrDefault();
字符串comune=(string)datiAnagrafici.subjections(“comune”).FirstOrDefault();
字符串provincia=(字符串)datiAnagrafici.subjections(“provincia”).FirstOrDefault();
int cap=(int)datiAnagrafici.subjections(“cap”).FirstOrDefault();
添加(新对象[]{giorno、mese、anno、via、comune、provincia、cap});
}
}
}
}