I am using Xquery on sql 2008 server and the results contain namespace prefixes (example p1 :) that are generated automatically. I am using a default namespace.
How to remove them?
Example / flow:
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 query:
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- Result:
<p1:ChildAges xmlns:p1="http://zzz.yyy.com">
<p1:ChildAge age="1" />
<p1:ChildAge age="12" />
</p1:ChildAges>
I want to get:
<ChildAges xmlns="http://zzz.yyy.com">
<ChildAge age="1" />
<ChildAge age="12" />
</ChildAges>