XML whit 多节点到 C# 中的数据表
Posted
技术标签:
【中文标题】XML whit 多节点到 C# 中的数据表【英文标题】:XML whit multi node to datatable in c# 【发布时间】:2019-12-18 07:23:43 【问题描述】:有没有办法将 xml 文件的导入映射到数据集? 例如,在我的情况下,我只想导入“DatiAnagrafici”并将“DataNascita”子节点和“indirizzo”添加到同一个表中。
xml tree
【问题讨论】:
【参考方案1】:使用 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 );
【讨论】:
以上是关于XML whit 多节点到 C# 中的数据表的主要内容,如果未能解决你的问题,请参考以下文章