2015-04-01 1 views
3

Я пытаюсь удалить пустое пространство имен из дочернего элемента. Я попытался с помощью следующего кода, но его не удалятьКак удалить пустое пространство имен из дочернего элемента в sql-сервере

SET @xDocTemp.modify('declare default element namespace "mynamepsace"; 
delete /worksh/Data/row[@xmlns=""]') 

XML данные:

<worksh xmlns="mynamespace"> 
    <Data> 
    <row r="1" ht="18"> 
    <row xmlns="" rl="39" spans="2"> 
    <row xmlns="" rl="39" spans="2"> 
</Data> 
<worksh> 

Ожидаемый результат

<worksh xmlns="mynamespace"> 
    <Data> 
    <row rl="1" ht="18"> 
    <row rl="39" spans="2"> 
    <row rl="39" spans="2"> 
</Data> 
<worksh> 
+0

не уверен, что это позиция с помощью 'modify()', но вы можете просто заменить его как 'set @xDocTemp = select cast (replace (cast (@xDocTemp as nvarchar (max)), 'xmlns =" ​​"', '') как xml)' –

+0

Большое спасибо @RomanPekar .... это сработало. –

ответ

0

не уверен, если это возможно с modify(), но вы можете просто заменить его, как

set @xDocTemp = select cast(replace(cast(@xDocTemp as nvarchar(max)), ' xmlns=""', '') as xml)