Ejemplo del uso de acciones en el paquete de XML
Descargar como PDF
- Última actualización2023/05/22
Ejemplo del uso de acciones en el paquete de XML
Con el paquete de XML, cree un bot que lea y transcriba datos de un archivo XML a una hoja de Excel.
El XML de ejemplo utilizado en este tutorial tiene la siguiente estructura:
<movies>
<movie genre="" year="">
<name></name>
<description></description>
<director></director>
<writers>
<writer type=""></writer>
<writer type=""></writer>
</writers>
<rating>R</rating>
</movie>
</movies>
Antes de empezar, descargue un archivo XML de ejemplo.
El objetivo del tutorial es demostrar las siguientes acciones:
- Utilizar una expresión XPath para obtener un conjunto de nodos con un valor específico e iterar a través de los elementos del conjunto de nodos, por ejemplo, las películas con una calificación específica en este tutorial.
- Utilizar una función XPath para iterar a través de los conjuntos de nodos secundarios.
- Concatenar variables para construir una cadena.
- Escribir datos en una hoja de Excel.
Antes de empezar
Revise lo siguiente:
- Sabe cómo crear bots.
- Está familiarizado con la interfaz de usuario de Control Room.
Procedimiento
-
Cree un bot y nómbrelo XMLDataReader.
-
Agregar un paso para agrupar todas las tareas a fin de abrir una hoja de Excel.
-
Agregue la acción Paso > Paso después del flujo Inicio en el Editor de bots.
Nota: Para agregar una acción, busque la acción en el panel Acciones y arrástrelo al flujo de bot en el Editor de bots.
- En Título, introduzca Open an Excel Sheet y guarde el acción.
-
Agregue la acción Paso > Paso después del flujo Inicio en el Editor de bots.
-
Para crear y abrir una hoja de Excel, utilice Excel avanzado > Crear libro.
- Agregue la acción Excel avanzado > Crear libro de trabajo dentro de la acción Paso.
- En Ruta del archivo, introduzca C:\Npelículas.xlsx y guarde la acción. Si la carpeta películas no existe en la ruta especificada, cree una carpeta películas en la ruta.
-
Para seleccionar la primera celda de la hoja de Excel, utilice la acción Excel avanzado > Ir a la celda.
- Agregue la acción Excel avanzado > Ir a la celda después de la acción de Excel avanzado: Acción Crear libro de trabajo.
- Haga clic en Celda específica si todavía no está seleccionada e introduzca A1.
- Guarde la acción.
-
Cree otro paso para agrupar todas las tareas de recuperación de datos XML.
- Agregue la acción Paso > Paso después de la primera acción Paso.
- En Título, introduzca Get XML Data y guarde el acción.
-
Iniciar una sesión XML.
- Agregue la acción XML > Iniciar sesión dentro del paso Obtener datos XML.
- En Archivo, seleccione Escritorio, explore y seleccione el archivo XML de muestra que ha descargado.
- Guarde los cambios.
-
Para obtener todos los nodos de la película con calificación R, utilice la acción Obtener múltiples nodos.
- Agregue la acción XML > Obtener múltiples nodos después de la acción Iniciar sesión.
-
En Expresión XPath, introduzca //movie[rating/text()='R'], y guarde la acción.
El conjunto de nodos seleccionado se almacena en una variable del sistema y ahora está disponible para el iterador Para cada nodo de un conjunto de datos XML.
- Para asegurarse de que la acción recupere todo el conjunto de nodos en lugar de solo los nodos de texto, haga clic en Expresión Xpath.
-
Utilice la acción Bucle para iterar a través del conjunto de nodos seleccionados que recupera la acción Obtener múltiples nodos.
- Agregue Bucle > Bucle después de la acción XML: Obtener múltiples nodosacción.
- En Iterador, seleccione XML > Para cada nodo de un conjunto de datos XML como iterador.
- En Asignar la fila actual a esta variable, haga clic en (x) y cree una variable con el nombre predeterminado, por ejemplo, XMLNode. Cada elemento del conjunto de nodos está ahora disponible a través de la variable.
- Guarde el acción.
-
Para obtener el nombre de la película del nodo iterado, utilice la acción Obtener nodo único.
- Agregue la acción XML > Obtener nodo único dentro de la acción Bucle: Bucleacción.
- En Expresión XPath, introduzca $XMLNode$/name.
- En Asignar la salida a una variable, cree una variable y nómbrela sMovieName.
- Guarde el acción.
-
Para escribir el nombre de la película desde la variable XMLNode, utilice la acción Obtener celda.
- Agregue la acción Excel avanzado > Obtener celda después de la acción Obtener nodo único.
- Haga clic en Celda activa, introduzca $sMovieName$ en Valor de celda y guarde la acción.
-
Para seleccionar una celda nueva dentro de la hoja de Excel, utilice la acción Ir a celda.
- Agregue la acción Ir a la celda después de la acción Ajustar celda, después de la acción Excel avanzado: Obtener celda.
- Haga clic en Celda activa, seleccione Una celda a la derecha y, luego, guarde la acción.
-
Para obtener el nombre del director del nodo iterado, utilice la acción Obtener nodo único.
- Agregue la acción XML > Obtener nodo único después de la acción Excel avanzado: Ir a la celdaacción.
- En Expresión XPath, introduzca $XMLNode$/director.
- En Asignar la salida a una variable, cree una variable con el siguiente nombre: sDirector
- Guarde el acción.
-
Para escribir el nombre del director desde la variable XMLNode, utilice la acción Obtener celda.
- Agregue la acción Excel avanzado > Obtener celda después de la acción XML: Obtener nodo únicoacción.
- Haga clic en Celda activa, introduzca $sDirector$ en Valor de celda y guarde la acción.
-
Para seleccionar una celda nueva dentro de la hoja de Excel, utilice la acción Ir a celda.
- Agregue la acción Ir a la celda después de la acción Excel avanzado: Obtener celda.
- Haga clic en Celda activa, seleccione Una celda a la derecha y, luego, guarde la acción.
-
Ya que el
<nodo de escritura>
puede contener múltiples nodos<de escritura,>
obtenga el nombre de cada escritor, concatene los nombres y escríbalos en una sola celda en lugar de escribir los valores en varias celdas. Para ello, agregue la acción Bucle dentro de la acción Bucle actual.-
Para obtener el número de los nodos
<de escritura,>
dentro del<nodo de escritura>
agregue la acción XML > Ejecutar función XPath después de la acción Excel avanzado: Obtener celda. En Expresión XPath, introduzca count($XMLNode$/writers/writer). En Asignar la salida a una variable, cree una variable llamada sWriterCount.Utilizará el recuento de nodos<de escritura,>
para recorrer todos los nodos<de escritura,>
. -
Agregue la acción Bucle > Bucle después de la acción XML: Ejecutar función XPath.
Importante: La acción del segundo Bucle debe agregarse dentro de la acción Bucle principal.
- En Iterador, seleccione Durante n veces como iterador.
-
En Veces, introduzca lo siguiente: $sWriterCount.String:toNumber$
Nota: sWriterCount contiene un valor de cadena. Para convertir una cadena en un número, puede utilizar el formato lt;variable name>.String:toNumber$, por ejemplo, $sWriterCount.String:toNumber$.
- En Asignar el valor actual a una variable (opcional), cree una variable llamada Counter.
- Guarde el acción.
-
Para obtener el número de los nodos
-
Para concatenar los valores de todos los nodos de escritura, cree una variable de cadena.
-
En el panel Variables, haga clic en el icono del signo más.
Aparece la ventana Crear variable.
- En Tipo, seleccione Cadena.
- En Nombre, introduzca sWriters.
- Haga clic en Crear.
-
En el panel Variables, haga clic en el icono del signo más.
-
Para obtener el valor de nodo
<de escritura,>
utilice la acción Obtener nodo único.- Agregue la acción XML > Obtener nodo único dentro de la acción del segundo Bucle.
-
En Expresión XPath, introduzca $XMLNode$/writers/writer[$Counter.Number:toString$].
Con la variable Counter, puede acceder a un nodo en un índice específico. Tenga en cuenta que, como la variable Counter contiene un valor numérico, la expresión .Number:toString$ se agrega a la variable Counter para convertirla en una cadena.
- En Asignar la salida a una variable, cree una variable y nómbrela sWriter.
- Guarde el acción.
-
Para asignar valores de los nodos de escritura, utilice la acción Cadena > Asignar.
- Agregue la acción Cadena > Asignar después de la acción XML: Obtener un nodo único dentro del segundo bucle.
- En Seleccionar el valor de la variable de cadena de origen (opcional), ingrese $sWriters$, $sWriter$.
- En Seleccionar la variable de cadena de destino, seleccione sWriters
- Guarde el acción.
Una vez completado el bucle interno, la variable sWriters contendrá todos los nombres de los escritores. -
Para escribir los nombres de los escritores en una celda nueva, utilice la acción Excel avanzado > Obtener celda dentro del bucle principal.
- Agregue la acción Excel avanzado > Obtener celda después de la acción Bucle interior dentro de la primera acción Bucle.
- Haga clic en Celda activa.
- Introduzca $sWriters$ en Valor de celda.
- Guarde el acción.
Los datos recuperados de un nodo<de película,>
se escriben en una fila. Para escribir los datos del siguiente nodo<de película,>
debe seleccionar la siguiente fila en la hoja de Excel. -
Para mover el cursor a la siguiente fila, utilice la acción Excel avanzado > Ir a la celda.
- Agregue la acción Ir a la celda después de la acción Obtener celda.
- Haga clic en Celda activa, seleccione Comienzo de la fila y, luego, guarde la acción.
- Agregue la acción Ir a la celda nuevamente. Haga clic en Celda activa, seleccione Una celda inferiory, a continuación, guarde la acción.
-
Antes de que se itere el siguiente nodo en el conjunto de nodos
<de película,>
debe restablecer la variable sWriters. Para restablecer la variable sWriters, siga estos pasos:- Agregue la acción Cadena > Asignar después de la acción Excel avanzado: Ir a la celda dentro del bucle principal.
- Deje en blanco Seleccionar el valor de la variable de cadena de origen (opcional).
- En Seleccionar la variable de cadena de destino, seleccione sWriters
-
Guarde el acción.
-
Cree un paso nuevo.
- Agregue la acción Paso > Paso después de la segunda acción Paso.
- En Título, introduzca Close the file.
-
Para cerrar la hoja de Excel, utilice la acción Excel avanzado Cerrar.
- Agregue la acción Excel avanzado > Cerrar dentro del paso Cerrar el archivo.
- Guarde los cambios.
-
Ejecute el bot.