使用多个xml命名空间解析SQL Server 2008中的xml
问题描述:
我想从下面的xml中获得gid
和uid
。此xml作为名为xmlmsg
的SQL Server 2008表中的列存在。我需要分析其与像下面的数据的XML列的表的SQL查询:(这是一个真正的评论,因为它似乎并没有回答标题隐含的问题)使用多个xml命名空间解析SQL Server 2008中的xml
<person xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://api.money.com/schema/contact" Email=""
gId="11" uId="uadgra45678" Timestamp="2013-10-17T19:19:41Z"
xsi:schemaLocation="http://api.money.com/schema/contact http://api.money.com/schema/contact/contact-1.2.xsd">
</person>
答
这个查询(从LinqPad)创建和检索XML数据:
--Drop Table #TempXml
Create Table #TempXml(Value XML)
Insert Into #TempXml(Value)Values('<person xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://api.money.com/schema/contact" Email=""
gId="11" uId="uadgra45678" Timestamp="2013-10-17T19:19:41Z"
xsi:schemaLocation="http://api.money.com/schema/contact http://api.money.com/schema/contact/contact-1.2.xsd">
</person>')
Select count(*) from #TempXml;
Select * from #TempXml;
Select Value.value('declare namespace AMC="http://api.money.com/schema/contact";
/AMC:person[1]/@uId','varchar(max)')
,Value.value('declare namespace AMC="http://api.money.com/schema/contact";
/AMC:person[1]/@gId','int')
From #TempXml;
Drop Table #TempXml
+0
这里是上述代码片段的[data.se] [query](http://data.stackexchange.com/stackoverflow/query/231961/check-so26289155-query)。 – 2014-10-10 01:38:03
定义*解析*。给定这个XML数据的预期输出是什么? – har07 2014-10-10 00:46:16