Skip to main content
Woohoo! Qlik Community has won “Best in Class Community” in the 2024 Khoros Kudos awards!
Announcements
Nov. 20th, Qlik Insider - Lakehouses: Driving the Future of Data & AI - PICK A SESSION
cancel
Showing results for 
Search instead for 
Did you mean: 
Anonymous
Not applicable

Lectura campo tipo xml

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

2 Replies
rubenmarin

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

)

hector_munoz
Specialist
Specialist

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:

22-11-2017 10-07-26.png

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