我有一些应用程序的属性以
XML格式传递给我.我需要按名称解析属性并将值分配给我的数据库中的相应列.
我目前正在SSIS脚本组件中解析它,但它需要很长时间才能完成.我希望有一个简单的解决方案,使用XQUERY,但我找不到我要找的东西.
这是我收到的xml的一个例子:
<properties> <property> <name>DISMISS_SETTING</name> <value>DEFAULT</value> </property> <property> <name>SHOW_SETTING</name> <value>DEFAULT</value> </property> <property> <name>DEFAULT_SETTING</name> <value>DEFAULT</value> </property> </properties>
所以,如果我查看第一个属性元素,我会将值DEFAULT分配给我的数据库中的DISMISS_SETTING列.此外,重要的是要注意,值的顺序和组合可能没有特定的顺序.
解决方法
使用
value() Method (xml Data Type)从XML中提取值.在XQuery表达式中检查谓词中所需的名称.
select @XML.value('(/properties/property[name = "DISMISS_SETTING"]/value/text())[1]','nvarchar(100)') as DISMISS_SETTING,@XML.value('(/properties/property[name = "SHOW_SETTING"]/value/text())[1]','nvarchar(100)') as SHOW_SETTING,@XML.value('(/properties/property[name = "DEFAULT_SETTING"]/value/text())[1]','nvarchar(100)') as DEFAULT_SETTING