如何从sql server中的子元素中删除空命名空间

时间:2015-04-01 21:57:32

标签: sql sql-server xml sqlxml

我正在尝试从子元素中删除空命名空间。我尝试使用以下代码但不删除

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>

1 个答案:

答案 0 :(得分:0)

不确定是否可以使用modify(),但您可以像

一样替换它
set @xDocTemp = select cast(replace(cast(@xDocTemp as nvarchar(max)), ' xmlns=""', '') as xml)