我在sql 2008 server上使用Xquery,结果包含自动生成的命名空间前缀(示例p1:)。我使用的是默认名称空间。
如何删除它们?
示例/流程:
1-
SET @ROOMLIST='
<RoomList>
<Root xmlns="http://zzz.yyy.com" >
<RoomInfo>
<AdultNum>2</AdultNum>
<ChildNum>2</ChildNum>
<ChildAges>
<ChildAge age="1"/>
<ChildAge age="12"/>
</ChildAges>
</RoomInfo>
</Root>
</RoomList>'
2-SQL查询:
declare @rt table (roomno int, Can_Adl int, Can_Chd int, ChildAges xml)
;WITH XMLNAMESPACES(DEFAULT 'http://zzz.yyy.com')
insert into @rt (Can_Adl,Can_Chd,ChildAges)
select r.value('(AdultNum/text())[1]','int') as CAN_ADL,
r.value('(ChildNum/text())[1]','int') as CAN_CHD,
r.query('ChildAges') as ChildAges
from @ROOMLIST.nodes('//RoomInfo') as t(r)
outer apply (select t.r.query('ChildAges') as c) qlo
3-结果:
<p1:ChildAges xmlns:p1="http://zzz.yyy.com">
<p1:ChildAge age="1" />
<p1:ChildAge age="12" />
</p1:ChildAges>
我想得到:
<ChildAges xmlns="http://zzz.yyy.com">
<ChildAge age="1" />
<ChildAge age="12" />
</ChildAges>