如何将不同格式的xml文件映射到我的数据库中的表中,例如我有一个名为Person
的表
FirstName nvarchar(50),
LastName nvarchar(50),
Address nvarchar(500)
我必须将用户提交的xml文件映射到Person
的字段,xml文件可以采用不同的格式,例如一个用户以下列格式提交
<Person>
<Names>
<FirstName>john</FirstName>
<LastName>smith</LastName>
</Names>
<Names>
<FirstName>john</FirstName>
<LastName>smith</LastName>
</Names>
</Person>
,另一位用户以下列格式提交
<Person>
<PersonalInfo>
<Names>
<FirstName>john</FirstName>
<LastName>smith</LastName>
</Names>
.
.
.
<PersonalInfo>
</Person>
如何设置一个解决方案来处理不同的情况(不同的xml格式),这样如果用户以任何格式提交xml文件,我只需将格式告诉我的应用程序,其值将自动映射到所说的表...我使用visual studio 2010作为IDE和C#.NET,我希望能够很好地解释这个问题......
请建议......
答案 0 :(得分:1)
因为我不知道它应该是多么动态(意味着你将改变映射的频率)或者你有多少不同的XML,我建议你使用你喜欢的ORM将表映射到一个公共类并使用LinqToXml创建类实例(这非常简单)。每个XML结构的一个方法或类。
这里有LinqToXml的样本 - &gt; http://www.switchonthecode.com/tutorials/introduction-to-linq-simple-xml-parsing
此外,如果您不想使用它并使用.NET 4,我创建了一个简单的库来从XML字符串生成动态对象。你可以在这看一下 - &gt; https://github.com/tucaz/XmlToObjectParser
答案 1 :(得分:1)
您可以识别要获取的架构,并使用适当的XSLT文件将其转换为最新版本。 注意:您应该通用一些来识别架构(例如)
(我更喜欢1.更好)创建一个更改映射的软件适配器接口(如加载项工作)