Saludos amigos, en esta ocasión estoy preparando algunos ejemplos de como generar código XML desde consultas en SQL 2005, algunas de las opciones más sencillas y rápidas para obtener datos con formato XML son:
Tabla a la cual aplicaremos las consultas:
Primera forma de obtener XML con la clausula FOR XML AUTO:
SELECT * FROM dbo.USUARIO_SYS AS Usuario FOR XML AUTO, TYPE, ROOT('Usuarios')
Devuelve un nodo Raíz llamado Usuarios y un nodo Usuario por cada una de las filas devueltas en la consulta, las cuales contienen atributos que son cada uno de los campos de la tabla.
<Usuarios> <Usuario id="7" nombre="Claudia" apellidos="Perez Torres" email="clau@mail.com" pass="a220109" fecha_add="2009-01-22T12:18:36.343" fecha_upd="2009-01-22T12:18:36.343" /> <Usuario id="10" nombre="Ivan" apellidos="Rangel Cuadros" email="ivan@mail.com" pass="852465" fecha_add="2009-01-23T00:00:00" fecha_upd="2009-01-23T00:00:00" /> <Usuario id="11" nombre="Carol" apellidos="Rangel" email="Zepeda" pass="789123" fecha_add="2009-01-23T00:00:00" fecha_upd="2009-01-23T00:00:00" /> <Usuario id="12" nombre="Tin" apellidos="Tin" email="tin@tin.com" pass="456798" fecha_add="2009-01-24T00:00:00" fecha_upd="2009-01-24T00:00:00" /> </Usuarios>
Segunda forma con la clausula FOR XML RAW:
SELECT * FROM dbo.USUARIO_SYS AS Usuario FOR XML RAW('NodoUsuario'), ROOT('Usuarios')
Devuelve el nodo raíz Usuarios, y por cada fila devuelta en la consulta un nodo llamado NodoUsuario, por lo tanto con RAW podemos asignar un nombre a cada fila de retorno de nuestras consultas.
<Usuarios> <NodoUsuario id="7" nombre="Claudia" apellidos="Perez Torres" email="clau@mail.com" pass="a220109" fecha_add="2009-01-22T12:18:36.343" fecha_upd="2009-01-22T12:18:36.343" /> <NodoUsuario id="10" nombre="Ivan" apellidos="Rangel Cuadros" email="ivan@mail.com" pass="852465" fecha_add="2009-01-23T00:00:00" fecha_upd="2009-01-23T00:00:00" /> <NodoUsuario id="11" nombre="Carol" apellidos="Rangel" email="Zepeda" pass="789123" fecha_add="2009-01-23T00:00:00" fecha_upd="2009-01-23T00:00:00" /> <NodoUsuario id="12" nombre="Tin" apellidos="Tin" email="tin@tin.com" pass="456798" fecha_add="2009-01-24T00:00:00" fecha_upd="2009-01-24T00:00:00" /> </Usuarios>
Tercera forma con la clausula XML AUTO, Elements:
SELECT * FROM dbo.USUARIO_SYS AS Usuario FOR XML AUTO, Elements, ROOT('Usuarios')
Devuelve un XML formado por elementos, es decir que por cada fila que devuelva la consulta se agregara al XML como un elemento y por cada columna se agregara un nodo sin atributos.
<Usuarios> <Usuario> <id>7</id> <nombre>Claudia</nombre> <apellidos>Perez Torres</apellidos> <email>clau@mail.com</email> <pass>a220109</pass> <fecha_add>2009-01-22T12:18:36.343</fecha_add> <fecha_upd>2009-01-22T12:18:36.343</fecha_upd> </Usuario> <Usuario> <id>10</id> <nombre>Ivan</nombre> <apellidos>Rangel Cuadros</apellidos> <email>ivan@mail.com</email> <pass>852465</pass> <fecha_add>2009-01-23T00:00:00</fecha_add> <fecha_upd>2009-01-23T00:00:00</fecha_upd> </Usuario> <Usuario> <id>11</id> <nombre>Carol</nombre> <apellidos>Rangel</apellidos> <email>Zepeda</email> <pass>789123</pass> <fecha_add>2009-01-23T00:00:00</fecha_add> <fecha_upd>2009-01-23T00:00:00</fecha_upd> </Usuario> <Usuario> <id>12</id> <nombre>Tin</nombre> <apellidos>Tin</apellidos> <email>tin@tin.com</email> <pass>456798</pass> <fecha_add>2009-01-24T00:00:00</fecha_add> <fecha_upd>2009-01-24T00:00:00</fecha_upd> </Usuario> </Usuarios>
Estas son algunas de las formas de generar datos XML, espero y les sirva de ayuda, en otro post preparare información para guardar y consultar datos de variables o documentos XML.
Dejen comentarios!!!
Comentarios recientes