2011-07-07 22 views
5

tengo la columna de XML type.There un xml como estoconsultas SQL que se suprime un atributo en XML

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

necesito para eliminar todos los atributos de texto. Sé que Oracle tiene algunas funciones para la manipulación de xml, pero no entiendo cómo eliminar atributos.

¿Cómo sería esa consulta?

Respuesta

6

Aquí se muestra un ejemplo del uso de Oracle suministra función SQL deletexml

Reconocimiento a Jonas Lincoln como estoy usando su expresión 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>               
+0

+1 uno para una respuesta dirigida a Oracle en lugar de SQL Server. –

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> 
+0

+1 para la expresión XPath Cómo –

+0

eliminar los xmlns, xmlns: xsi y xsi: schemaLocation atrribute de la etiqueta document_list ........

Cuestiones relacionadas