viernes, 11 de febrero de 2011

Mysql con XML

Saludos
El otro dia tocando mysql nacio la necesidad de trabajar con archivos en formato XML(lenguaje de marcas extensible) como bien saben es un estandar en el desarrollo de sistemas.
Bueno lo puse en un procedimiento alamacenado y conforme valla leyendo el xml lo baya insertando el contenido en otra tabla temporal por ejemplo.

-- Routine DDL
-- --------------------------------------------------------------------------------
DELIMITER $$

CREATE PROCEDURE `leerXml`(
in xmlDoc text
)
BEGIN
-- inicializador
DECLARE i INT DEFAULT 1;
-- contador de tags en el XML
DECLARE count int DEFAULT ExtractValue(xmlDoc, 'count(//descripcion)');
-- mientras recorremos los tags
WHILE i <= count DO
    -- selecionar el tags de indice i
    -- SELECT ExtractValue(xmlDoc, '//descripcion[$i]');
    -- sumar contador en 1
    SET i = i+1;
    -- insercion de prueba en tercera tabla
    insert into sit_Temp values (i,ExtractValue(xmlDoc, '//descripcion[$i]'),'prueba');
END WHILE ;
END



En una nueva hoja de consultas

-- execucion de prueba

call leerXml ('<parent><descripcion>descripcion 1</descripcion><descripcion>descripcion 2</descripcion><descripcion>descripcion 3</descripcion><descripcion>descripcion 4</descripcion></parent>');

No hay comentarios:

Publicar un comentario