XML - Sacar datos de un xml

 
Vista:

Sacar datos de un xml

Publicado por Carolina (1 intervención) el 20/06/2007 19:35:49
Hola a todos tengo una duda, estoy trabajndo con sql 2005 y cargo archivos xml a una columan de una tabla..lo que necesito es sacar la informacion y que esta quede con fromato varchar etc. el problema es que no se como este es un ejemplo del tipo xml que tengo cargado en la columna

<?xml version="1.0" encoding="ISO-8859-1"?>
<lista>
<elemento name="elem1">
<campo>Valor campo 1</campo>
</elemento>
<elemento name="elem2">
<campo>Valor campo 2</campo>
</elemento>
</lista>

y requiero sacarlos asi:

elemento campo
elem1 Valor campo 1
elem2 Valor campo 2

Sia lguien me puede ayudar por favor...

Salu2
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Extraer datos de un campo XML en SQL Server 2005

Publicado por Alejandro (258 intervenciones) el 15/07/2023 00:22:03
En SQL Server 2005, puedes utilizar funciones y métodos específicos para extraer los datos de un campo XML y presentarlos en el formato deseado. Aquí te muestro cómo puedes lograrlo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
-- Tabla de ejemplo con un campo XML
CREATE TABLE Ejemplo (
    ID INT,
    Datos XML
);
 
-- Insertar datos de ejemplo
INSERT INTO Ejemplo (ID, Datos)
VALUES (1, '<lista>
                <elemento name="elem1">
                    <campo>Valor campo 1</campo>
                </elemento>
                <elemento name="elem2">
                    <campo>Valor campo 2</campo>
                </elemento>
            </lista>');
 
-- Consulta para extraer los datos del campo XML
SELECT
    elem.value('@name', 'VARCHAR(50)') AS elemento,
    elem.value('campo[1]', 'VARCHAR(50)') AS campo
FROM
    Ejemplo
CROSS APPLY
    Datos.nodes('/lista/elemento') AS t(elem);

En esta solución, creamos una tabla de ejemplo con un campo XML llamado "Datos". Luego, insertamos un registro de ejemplo con el XML proporcionado.

La consulta utiliza la función `nodes()` para dividir el campo XML en filas separadas basadas en la ruta `/lista/elemento`. Luego, utilizamos la función `value()` para extraer los valores de los atributos y elementos deseados.

En el resultado de la consulta, obtendrás los datos en el formato solicitado:

1
2
3
4
elemento | campo
---------|--------------
elem1    | Valor campo 1
elem2    | Valor campo 2

Asegúrate de adaptar la consulta según el nombre de tu tabla y el campo XML específico en tu caso. Además, ajusta los tipos de datos en las funciones `value()` según los tipos de datos reales que esperas obtener.

Espero que esta solución te ayude a extraer los datos de un campo XML en SQL Server 2005 y presentarlos en el formato deseado. Recuerda que es posible que debas adaptarla según tus necesidades y estructura de datos. ¡Buena suerte!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar