Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
删除XML中属性的SQL查询_Sql_Xml_Oracle - Fatal编程技术网

删除XML中属性的SQL查询

删除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>

我有一个XML类型的列,有这样一个XML

<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属性。。。。。。。。