我有XML类型的列。这是一个像这样的xml
<items>
<item type="xxx"><items>
<item type="xxx"><items>
</items>
我需要删除所有类型属性。我知道oracle有一些用于xml操作的函数,但我不知道如何删除属性。
这样的查询怎么样?
答案 0 :(得分:6)
以下是使用Oracle提供的SQL函数deletexml
的示例我正在使用他的XPATH表达式向Jonas Lincoln致谢
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>
答案 1 :(得分:2)
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>