SQL-запрос, который удаляет атрибут в XML - PullRequest
5 голосов
/ 07 июля 2011

У меня есть столбец типа XML. Вот такой xml

<items>
   <item type="xxx"><items>
   <item type="xxx"><items>
</items>

Мне нужно удалить все атрибуты типа. Я знаю, что в oracle есть некоторые функции для работы с XML, но я не понимаю, как удалять атрибуты.

Как бы выглядел такой запрос?

Ответы [ 2 ]

6 голосов
/ 07 июля 2011

Вот пример использования функции SQL, предоставляемой Oracle deletexml

Благодарность Джонасу Линкольну, поскольку я использую его выражение XPATH

SELECT deleteXML(xmltype.CREATEXML('<items>
                                       <item type="xxx">a</item>
                                       <item type="xxx">b</item>
                                   </items>'),
                                   '/items/item[@type="xxx"]/@type')
FROM dual  

<items>
   <item>a</item>
   <item>b</item>
</items>                                                         
2 голосов
/ 07 июля 2011
declare @xml as xml
set @xml = '
<items>
    <item type="xxx">3</item>
    <item type="xxx">4</item>
    </items>'

SET @xml.modify('delete (/items/item[@type="xxx"]/@type)')

select cast(@xml as nvarchar(100))

<items>
  <item>3</item>
  <item>4</item>
</items>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...