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

  1. Cree un bot y nómbrelo XMLDataReader.
  2. Agregar un paso para agrupar todas las tareas a fin de abrir una hoja de Excel.
    1. 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.
    2. En Título, introduzca Open an Excel Sheet y guarde el acción.
  3. Para crear y abrir una hoja de Excel, utilice Excel avanzado > Crear libro.
    1. Agregue la acción Excel avanzado > Crear libro de trabajo dentro de la acción Paso.
    2. 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.
  4. Para seleccionar la primera celda de la hoja de Excel, utilice la acción Excel avanzado > Ir a la celda.
    1. 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.
    2. Haga clic en Celda específica si todavía no está seleccionada e introduzca A1.
    3. Guarde la acción.
  5. Cree otro paso para agrupar todas las tareas de recuperación de datos XML.
    1. Agregue la acción Paso > Paso después de la primera acción Paso.
    2. En Título, introduzca Get XML Data y guarde el acción.
  6. Iniciar una sesión XML.
    1. Agregue la acción XML > Iniciar sesión dentro del paso Obtener datos XML.
    2. En Archivo, seleccione Escritorio, explore y seleccione el archivo XML de muestra que ha descargado.
    3. Guarde los cambios.
  7. Para obtener todos los nodos de la película con calificación R, utilice la acción Obtener múltiples nodos.
    1. Agregue la acción XML > Obtener múltiples nodos después de la acción Iniciar sesión.
    2. 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.
    3. 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.
  8. Utilice la acción Bucle para iterar a través del conjunto de nodos seleccionados que recupera la acción Obtener múltiples nodos.
    1. Agregue Bucle > Bucle después de la acción XML: Obtener múltiples nodosacción.
    2. En Iterador, seleccione XML > Para cada nodo de un conjunto de datos XML como iterador.
    3. 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.
    4. Guarde el acción.
  9. Para obtener el nombre de la película del nodo iterado, utilice la acción Obtener nodo único.
    1. Agregue la acción XML > Obtener nodo único dentro de la acción Bucle: Bucleacción.
    2. En Expresión XPath, introduzca $XMLNode$/name.
    3. En Asignar la salida a una variable, cree una variable y nómbrela sMovieName.
    4. Guarde el acción.
  10. Para escribir el nombre de la película desde la variable XMLNode, utilice la acción Obtener celda.
    1. Agregue la acción Excel avanzado > Obtener celda después de la acción Obtener nodo único.
    2. Haga clic en Celda activa, introduzca $sMovieName$ en Valor de celda y guarde la acción.
  11. Para seleccionar una celda nueva dentro de la hoja de Excel, utilice la acción Ir a celda.
    1. 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.
    2. Haga clic en Celda activa, seleccione Una celda a la derecha y, luego, guarde la acción.
  12. Para obtener el nombre del director del nodo iterado, utilice la acción Obtener nodo único.
    1. Agregue la acción XML > Obtener nodo único después de la acción Excel avanzado: Ir a la celdaacción.
    2. En Expresión XPath, introduzca $XMLNode$/director.
    3. En Asignar la salida a una variable, cree una variable con el siguiente nombre: sDirector
    4. Guarde el acción.
  13. Para escribir el nombre del director desde la variable XMLNode, utilice la acción Obtener celda.
    1. Agregue la acción Excel avanzado > Obtener celda después de la acción XML: Obtener nodo únicoacción.
    2. Haga clic en Celda activa, introduzca $sDirector$ en Valor de celda y guarde la acción.
  14. Para seleccionar una celda nueva dentro de la hoja de Excel, utilice la acción Ir a celda.
    1. Agregue la acción Ir a la celda después de la acción Excel avanzado: Obtener celda.
    2. Haga clic en Celda activa, seleccione Una celda a la derecha y, luego, guarde la acción.
  15. 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.
    1. 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,>.
    2. 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.
    3. En Iterador, seleccione Durante n veces como iterador.
    4. 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$.
    5. En Asignar el valor actual a una variable (opcional), cree una variable llamada Counter.
    6. Guarde el acción.
  16. Para concatenar los valores de todos los nodos de escritura, cree una variable de cadena.
    1. En el panel Variables, haga clic en el icono del signo más.
      Aparece la ventana Crear variable.
    2. En Tipo, seleccione Cadena.
    3. En Nombre, introduzca sWriters.
    4. Haga clic en Crear.
  17. Para obtener el valor de nodo<de escritura,>utilice la acción Obtener nodo único.
    1. Agregue la acción XML > Obtener nodo único dentro de la acción del segundo Bucle.
    2. 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.
    3. En Asignar la salida a una variable, cree una variable y nómbrela sWriter.
    4. Guarde el acción.
  18. Para asignar valores de los nodos de escritura, utilice la acción Cadena > Asignar.
    1. Agregue la acción Cadena > Asignar después de la acción XML: Obtener un nodo único dentro del segundo bucle.
    2. En Seleccionar el valor de la variable de cadena de origen (opcional), ingrese $sWriters$, $sWriter$.
    3. En Seleccionar la variable de cadena de destino, seleccione sWriters
    4. Guarde el acción.
    Una vez completado el bucle interno, la variable sWriters contendrá todos los nombres de los escritores.
  19. Para escribir los nombres de los escritores en una celda nueva, utilice la acción Excel avanzado > Obtener celda dentro del bucle principal.
    1. Agregue la acción Excel avanzado > Obtener celda después de la acción Bucle interior dentro de la primera acción Bucle.
    2. Haga clic en Celda activa.
    3. Introduzca $sWriters$ en Valor de celda.
    4. 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.
  20. Para mover el cursor a la siguiente fila, utilice la acción Excel avanzado > Ir a la celda.
    1. Agregue la acción Ir a la celda después de la acción Obtener celda.
    2. Haga clic en Celda activa, seleccione Comienzo de la fila y, luego, guarde la acción.
    3. 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.
  21. 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:
    1. Agregue la acción Cadena > Asignar después de la acción Excel avanzado: Ir a la celda dentro del bucle principal.
    2. Deje en blanco Seleccionar el valor de la variable de cadena de origen (opcional).
    3. En Seleccionar la variable de cadena de destino, seleccione sWriters
    4. Guarde el acción.
  22. Cree un paso nuevo.
    1. Agregue la acción Paso > Paso después de la segunda acción Paso.
    2. En Título, introduzca Close the file.
  23. Para cerrar la hoja de Excel, utilice la acción Excel avanzado Cerrar.
    1. Agregue la acción Excel avanzado > Cerrar dentro del paso Cerrar el archivo.
    2. Guarde los cambios.
  24. Ejecute el bot.