¿Cómo elimino/ignoro el espacio de nombres XML en un archivo xml al consultar los datos con T-SQL?Ignorar espacio de nombres XML en T-SQL
Estoy cargando un archivo xml en una variable, y funciona muy bien. Pero el xml tiene un conjunto de espacios de nombres, y a menos que lo elimine, mis consultas aparecerán vacías.
T-SQL:
DECLARE @xml xml
SELECT @xml = BulkColumn FROM OPENROWSET(BULK 'C:\myfile.xml', SINGLE_BLOB) AS A
SELECT X.z.value('ID[1]', 'VARCHAR(3)') FROM @xml.nodes('myroot/element') AS X(z)
XML de ejemplo:
<?xml version="1.0" encoding="utf-8"?>
<myroot xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<element>
<ID>1</ID>
</element>
<element>
<ID>2</ID>
</element>
<element>
<ID>3</ID>
</element>
</myroot>
Esto funciona, la consulta devuelve esto:
Pero el XML también contiene un espacio de nombres por defecto:
<myroot xmlns="http://XXX" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
Los xmlns="http://XXX"
completamente los tornillos hasta mi consulta. Desafortunadamente, modificar manualmente el xml antes de cargarlo no es realmente una opción.
Preguntas:
- ¿Cómo se quita o ignorar el espacio de nombres cuando la carga de los datos en la variable?
- ¿O cómo modifico mi consulta para manejar el espacio de nombres?
Excelente, funciona perfectamente. Gracias. :) –