C# 使用自动字段映射快速读取XML文件并保存到磁盘上的表
如何通过自动字段映射快速读取XML文件并保存到磁盘上的强类型表(MS Access或SQL server 2012) 想法/需求:C# 使用自动字段映射快速读取XML文件并保存到磁盘上的表,c#,xml,datatable,C#,Xml,Datatable,如何通过自动字段映射快速读取XML文件并保存到磁盘上的强类型表(MS Access或SQL server 2012) 想法/需求: 使用c#4.0和.NET 4.0以及SQL server 2012和MS Access 基于自动字段映射导入xml数据(字段名称和字段类型) 从XML到表。我有XSD。只需添加新行,无键匹配 可以在需要时覆盖字段和类型映射(尚未决定 是硬编码还是使用模板/映射文件,这样我就不会 (必须重新编译) 如果需要,我可以复制字段映射(1个xml字段到多个表) 字段) 代码/
步骤4:将自定义源添加到dest字段映射:(如何-最好的方法是什么?如果您拥有xml文件中的xsd文件,您可能需要尝试xsd2code,这是一个codeplex项目。这使得代码中的类基于Xsd格式 对我来说,这使我能够非常轻松地创建xml代码,几乎没有问题。当xml模式发生更改时,您可以只更新代码以生成新类
非常好而且整洁,当然这是个人的偏好。如果您有xml文件中的xsd文件,您可能需要尝试xsd2code,这是一个codeplex项目。这使得代码中的类基于Xsd格式 对我来说,这使我能够非常轻松地创建xml代码,几乎没有问题。当xml模式发生更改时,您可以只更新代码以生成新类
非常漂亮整洁,当然这是个人喜好。您有xml文件中的xsd文件吗?您有xml文件中的xsd文件吗?谢谢。我有VS2010,这会增加工作吗?我一直在从xsd.exe工具生成c#类。xsd2code为我提供了什么我在上面还没有的东西?它允许您将节点作为类进行编程。因此,您不再使用序列化程序等。这些都是为您完成的。举个简单的例子。这是免费软件,所以你可以玩,但不必付费;)@FlorisPrijit我想这正是我在VS 2010中所做的,没有这个插件。xsd.exe工具从xsd文件生成一个C#类,这样我就可以获得如下xml数据。。这是内置的。我看不出你告诉我的有什么不同。Xmlserializer使用基于xsd的c#类文件为我填充类。你是说这样做可以省去我调用序列化或反序列化的步骤?一行代码?它增加了比这更多的功能,最好的方法就是去网站亲自看看你认为该功能是否能解决你提到的5个想法/需求。这是我能帮你的最好的了。谢谢。我有VS2010,这会增加工作吗?我一直在从xsd.exe工具生成c#类。xsd2code为我提供了什么我在上面还没有的东西?它允许您将节点作为类进行编程。因此,您不再使用序列化程序等。这些都是为您完成的。举个简单的例子。这是免费软件,所以你可以玩,但不必付费;)@FlorisPrijit我想这正是我在VS 2010中所做的,没有这个插件。xsd.exe工具从xsd文件生成一个C#类,这样我就可以获得如下xml数据。。这是内置的。我看不出你告诉我的有什么不同。Xmlserializer使用基于xsd的c#类文件为我填充类。你是说这样做可以省去我调用序列化或反序列化的步骤?一行代码?它增加了比这更多的功能,最好的方法就是去网站亲自看看你认为该功能是否能解决你提到的5个想法/需求。这是我能帮你的最好的了。
ser = new XmlSerializer(typeof(MyTypeData));
MyTypeData data;
using (XmlReader reader = XmlReader.Create(XMLFullPath))
{
data = (MyTypeData)ser.Deserialize(reader);
}
public static DataTable CreateEmptyDataTable(MyTypeData data)
// Creates empty DataTable
{
DataTable dt = new DataTable();
foreach (PropertyInfo info in data.GetProperties())
{
dt.Columns.Add(new DataColumn(info.Name, info.PropertyType));
}
return dt;
}