Descripción General #
El comando «ReadXML» permite extraer información específica de un archivo XML y almacenarla en variables para su posterior uso en automatizaciones. Funciona analizando el archivo XML proporcionado y buscando el elemento indicado, para luego asignar el valor encontrado a la variable designada. Puedes obtener cualquier tipo de dato que se encuentre dentro del archivo XML, ya sea un texto, un número, una fecha o incluso estructuras XML anidadas.
Ejemplo de Uso Rápido #
Imagina que recibes un archivo XML con la información de un producto. Dentro de este archivo, hay una etiqueta llamada <nombre_producto>
. Con el comando «ReadXML», podrías decirle a STELA: «Busca en este archivo XML la etiqueta <nombre_producto>
y guarda lo que encuentres en una variable llamada nombreDelProducto
«. Así de fácil, tendrás el nombre del producto listo para usar en tu automatización.
Parámetros y Opciones #
- Archivo XML: Aquí debes indicar la ruta completa (la dirección) donde se encuentra el archivo XML que quieres analizar.
- Campo: En este campo, defines exactamente qué información quieres extraer del archivo XML. Utilizarás una «ruta» para guiar a STELA hasta el dato que necesitas. Esta ruta es similar a cómo navegas por las carpetas de tu computadora, pero dentro de la estructura del XML. Por ejemplo, si quieres el valor dentro de una etiqueta
<precio>
que está dentro de<producto>
, la ruta podría ser/producto/precio
. - Variable: Aquí le das un nombre donde STELA guardará la información que encuentre. Esta variable podrá ser utilizada por otros comandos y acciones dentro de tu flujo de trabajo.

Ejemplos de Uso Avanzado #
- Extrayendo un valor específico dentro de una estructura: Imagina un archivo XML con información de varios ítems. Cada ítem tiene un
<id>
y un<nombre>
. Si solo necesitas el nombre del ítem con un<id>
específico, puedes usar la ruta adecuada dentro del parámetro «Elemento» para llegar directamente a ese valor y guardarlo en una variable. Por ejemplo, si el XML tiene una estructura como<items><item><id>123</id><nombre>Producto A</nombre></item></items>
, podrías configurar el comando para extraer el texto dentro de la etiqueta<nombre>
del<item>
cuyo<id>
sea123
. - Obteniendo un bloque completo de información anidada: A veces, la información que necesitas no es un simple texto, sino un conjunto de datos relacionados dentro de una sección del XML. Por ejemplo, podrías tener una sección
<direccion>
con sub-etiquetas como<calle>
,<numero>
,<ciudad>
. Con «ReadXML», puedes extraer todo el contenido dentro de la etiqueta<direccion>
y guardarlo en una variable. - Trabajando con XML embebido (en dos pasos): A veces un archivo XML puede contener otro XML dentro de una de sus etiquetas. Si necesitas acceder a información dentro de este «XML anidado», primero usarás «ReadXML» para extraer el XML completo embebido y guardarlo en una variable. Luego, en un segundo paso, utilizarás otro comando «ReadXML», pero esta vez indicando como «Archivo XML» la variable donde guardaste el XML embebido, y especificando la ruta al dato que necesitas dentro de él.
Ventajas de uso #
- Flexibilidad: Permite extraer cualquier tipo de información de un archivo XML, adaptándose a diferentes estructuras y niveles de anidamiento.
- Reutilización: Los datos extraídos se almacenan en variables, lo que facilita su reutilización en distintas partes de la automatización.
- Integración: Facilita la integración de datos externos en tus procesos automatizados, permitiendo trabajar con una amplia variedad de formatos de datos.
Errores Comunes y Soluciones #
- Ruta incorrecta: Si STELA no encuentra el elemento que especificaste, es probable que la ruta que ingresaste en el parámetro no sea correcta. Solución: Revisa cuidadosamente la estructura de tu archivo XML y asegúrate de que la ruta coincida exactamente con la ubicación del dato que quieres extraer, incluyendo las mayúsculas y minúsculas.
- Archivo XML no encontrado: Si la ruta del archivo que indicaste en el parámetro «Archivo XML» es incorrecta o el archivo no existe en esa ubicación, STELA no podrá leerlo. Solución: Verifica que la ruta del archivo sea correcta y que el archivo esté accesible para STELA.
Casos de Uso #
- Automatización de la extracción de datos de informes: Si recibes informes en formato XML de forma regular, puedes usar «ReadXML» para extraer los datos clave y utilizarlos para generar tus propios reportes o alimentar otras aplicaciones.
- Procesar respuestas de servicios web: Extraer datos de las respuestas XML de servicios web y utilizarlos para tomar decisiones o generar reportes.
- Procesamiento de archivos de configuración: Puedes leer archivos y obtener los valores de configuración necesarios para personalizar el comportamiento de tus automatizaciones.
- Captura de datos visuales estructurados: Si tienes información organizada visualmente que se guarda en formato XML, puedes usar «ReadXML» para extraer estos datos de manera estructurada y utilizarlos en tus flujos de trabajo.
Ejemplos #
Proceso detallado:
Damos como ejemplo el siguiente archivo XML:

Si deseamos obtener el dato en «Items», podemos utilizar el comando ReadXML y especificar que nos de el dato que se encuentra en /Document/Data/Items (ruta al valor a leer).
También podemos solicitar toda la información contenida dentro de «Verification». Al formar una ruta similar a la anterior, le pedimos que nos devuelva la información en /Document/Data/Verification, lo que nos permitirá guardar los datos de ID, Code, Date y Time que se encuentran dentro del nodo «Verification».
Ahora, todos estos son datos cuyos valores son texto (o nodos que contienen valores que son texto). Sin embargo, los archivos XML también permiten poner como valor de un nodo un XML embebido, como se muestra en el siguiente ejemplo:

En este caso, ahora existe un campo Description en /Document/Data/Description cuyo valor no es un texto, sino otro XML embebido. Afortunadamente, para facilitar la explicación, Notepad++ resalta este tipo de datos en naranja.
El problema surge al intentar obtener un valor del XML embebido, como por ejemplo, el dato de Prefix. No podemos utilizar la ruta /Document/Data/Description/Info/Data/Control/OtherInfo/Prefix, donde la primera parte en celeste sería la ruta para acceder al XML embebido, y luego la ruta en naranja sería la ruta dentro del XML embebido.
Solución: Dado que no podemos acceder directamente al dato que queremos, necesitamos realizar el proceso en dos pasos. Primero, vamos a obtener toda la información del XML embebido completo utilizando el comando ReadXML. Luego, usaremos ese dato como si fuera un XML independiente y aplicaremos el procedimiento normal para buscar el dato en Prefix que deseamos.
Ejemplo 1:
Primero, repasemos cómo es el caso normal del comando ReadXML en STELA, leyendo el campo Ítems del archivo anterior.

Al indicar la ruta al archivo, STELA va a leer ese archivo XML y buscar el dato en el nodo /Document/Data/Items, para luego guardarlo en la variable @DatoXML.
Ejemplo 2
En este caso, queremos obtener todo el XML embebido en lugar de un valor específico. El proceso sigue siendo el mismo: solicitaremos el valor del nodo Description de la misma manera que lo haríamos para cualquier otro dato.

Ahora nos va a guardar en la variable @DatoXML_2 el XML embebido que se encuentra en Description.
Ahora, teniendo el XML embebido almacenado dentro de una variable, lo que debemos hacer para completar el proceso es tomar ese XML y solicitar el dato de Prefix que queríamos.

La diferencia con los ejemplos anteriores es que ahora no utilizamos el archivo original como XML de entrada. En cambio, pasaremos como entrada el XML que tenemos almacenado en la variable @DatoXML_2, que obtuvimos en el paso anterior y sabemos que contiene el XML embebido.
Con eso, al indicar la ruta al nodo Prefix, que ahora es un nodo normal de texto, obtendremos su valor.
Evidencia
Al ejecutar el proceso, se puede observar cómo STELA lee los archivos y almacena la información deseada en las variables correspondientes para cada uno de los pasos.

(Valores de las 3 variables usadas en el _wrk_datos.TMP)