Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Buen Día
Un saludo cordial
Resulta que estoy trabajando en generar un modelo de qlikview en el que se puedan cruzar muchas variables clínicas, estando la base de datos en SQL SERVER me encuentro con un campo tipo text que para algunas situaciones de algunas variables guarda información en formato xml. Quisiera saber si alguien me puede indicar como es posible realizar la lectura de esta información para extraer los datos del xml. Adjunto el ejemplo de la tabla
Agradezco mucho su colaboración
Hola Ángela, entiendo que en esa columna solo quieres recuperar la descripción ¿o como quieres recuperar los distintos valores del xml?
Solo para description puedes usar:
TextBetween(descripcion, '<Description>', '</Description>') //Recupera el texto entre las etiquetas
Para identificar solo estos registros podrías usar:
If(Left(descripcion, 5)='<?xml'
, TextBetween(descripcion, '<Description>', '</Description>')
, descripcion
)
Hola Ángela,
Esto que pides es complicado... Si se pudiese almacenar un campo de una tabla residente (de script) como XML (con la sentencia STORE de igual manera que se crea un QVD o un TXT) lo tendrías resuelto porque para cada registro que leas y que tenga una descripción en formato XML, crearías un XML con un nombre que luego pudieses utilizar para relacionar su información con la del registro.
Tendrías que parsear, como pone Rubén en su correo, la información de este campo XML y extraer toda la información de sus etiquetas. El problema de esto es que tendrías que contemplar el caso más complejo del XML, crear un algoritmo que lo procesase y actualizarlo siempre que hubiese cambios.
Dicho esto, para el ejemplo que adjuntas, y que es sencillo, te paso adjunto un ejemplo en QlikView que creo que lo soluciona y te saca algo como esto:
No he comentado el código; si hay algo que no se entienda me dices.
rubenmarin, me apunto la función TextBetween()... 😉
Un saludo,
H