删除XML中属性的SQL查询
我有一个XML类型的列,有这样一个XML删除XML中属性的SQL查询,sql,xml,oracle,Sql,Xml,Oracle,我有一个XML类型的列,有这样一个XML <items> <item type="xxx"><items> <item type="xxx"><items> </items> 我需要删除所有类型属性。我知道oracle有一些xml操作功能,但我不知道如何删除属性 这样的查询是什么样子的?将@xml声明为xml declare @xml as xml set @xml = ' <items>
<items>
<item type="xxx"><items>
<item type="xxx"><items>
</items>
我需要删除所有类型属性。我知道oracle有一些xml操作功能,但我不知道如何删除属性
这样的查询是什么样子的?将@xml声明为xml
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>
set@xml=
3.
4.
'
SET@xml.modify('delete(/items/item[@type=“xxx”]/@type)'))
选择cast(@xml作为nvarchar(100))
3.
4.
下面是一个使用Oracle提供的SQL函数的示例
感谢Jonas Lincoln,因为我正在使用他的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>
选择deleteXML(xmltype.CREATEXML('
A.
B
'),
'/items/item[@type=“xxx”]/@type')
来自双重
A.
B
+1针对Oracle而非SQL Server的答案。如何从文档列表标记中删除xmlns、xmlns:xsi和xsi:schemaLocation属性。。。。。。。。