从sql中的xml删除第n个子节点后的所有子节点

时间:2012-09-28 13:17:38

标签: sql xquery-sql

我有以下XML结构:

<Config>
  <DeviceFeatures>
    <IMEI>7844454564</IMEI>
    <PhoneNo>12354</PhoneNo>
    <ICCIDNo>455554</ICCIDNo>
    <IMSINo>87451</IMSINo>
    <UniqueDeviceId>360</UniqueDeviceId>
    <UserId>511154565@showcase.n</UserId>
    <Password>test123</Password>
    <Proxy>129.192.174.126</Proxy>
    <Proxy_Port>5060</Proxy_Port>
  </DeviceFeatures>
</Config>

我想删除节点<UniqueDeviceId></UniqueDeviceId>之后的所有子节点。

我想删除特定的(UserId,Password,Proxy,Proxy_Port)节点。

我已经尝试过以下内容:

DeviceFeatures.modify ('delete (/Config/DeviceFeatures/*)')

但它会删除所有子节点。

我尝试了其他一些解决方案,但它似乎根本不起作用,我不想编写多个更新语句来删除单个节点。

有没有人知道这种情况的可能解决方案?

1 个答案:

答案 0 :(得分:1)

如果您知道序列,可以使用

 DeviceFeatures.modify ('delete /Config/DeviceFeatures/*[position()>=6]')