Exemple d'utilisation d'actions dans le package XML

À l'aide du package XML, créez un robot qui lit et écrit les données d'un fichier XML dans une feuille Excel.

L'exemple de XML utilisé dans ce tutoriel a la structure suivante :
<movies>
    <movie genre="" year="">
        <name></name>
        <description></description>
        <director></director>
        <writers>
            <writer type=""></writer>
            <writer type=""></writer>
        </writers>
        <rating>R</rating>
    </movie>
</movies>

Avant de commencer, téléchargez un exemple de fichier XML.

Dans ce tutoriel, nous vous expliquons comment effectuer les actions suivantes :
  • Utiliser une expression XPath pour obtenir un ensemble de nœuds avec une valeur spécifique et itérer au sein des éléments de l'ensemble de nœuds, par exemple, les films avec un classement spécifique dans ce tutoriel.
  • Utiliser une fonction XPath pour itérer au sein des ensembles de nœuds enfants.
  • Concaténer des variables pour créer une chaîne.
  • Écrire des données dans une feuille Excel.

Prérequis

Assurez-vous de ce qui suit :

  • Vous savez comment créer des robots.
  • Vous connaissez l'interface utilisateur de la Control Room.

Procédure

  1. Créez un robot et nommez-le XMLDataReader.
  2. Ajoutez une étape pour regrouper toutes les tâches d'ouverture d'une feuille Excel.
    1. Ajoutez l'action Étape > Étape après le flux Démarrer dans l'Éditeur de robots.
      Remarque : Pour ajouter une action, recherchez l'action dans le volet Actions et faites-la glisser vers le flux de robot dans l'Éditeur de robots.
    2. Dans Titre, saisissez Open an Excel Sheet et enregistrez l'action.
  3. Pour créer et ouvrir une feuille Excel, utilisez Excel avancé > Créer un classeur.
    1. Ajoutez l'action Excel avancé > Créer un classeur dans l'action Étape.
    2. Dans Chemin de fichier, saisissez C:\movies\movies.xlsx et enregistrez l'action. Si le dossier movies n'existe pas dans le chemin spécifié, créez un dossier movies dans le chemin.
  4. Pour sélectionner la première cellule de la feuille Excel, utilisez l'action Excel avancé > Accéder à la cellule.
    1. Ajoutez l'action Excel avancé > Accéder à la cellule après l'action Excel avancé : Action Créer un classeur.
    2. Cliquez sur l'option Cellule spécifique si elle n'est pas déjà sélectionnée, puis saisissez A1.
    3. Enregistrez l'action.
  5. Créez une autre étape afin de regrouper toutes les tâches de récupération des données XML.
    1. Ajoutez l'action Étape > Étape après la première action Étape.
    2. Dans Titre, saisissez Get XML Data et enregistrez l'action.
  6. Démarrez une session XML.
    1. Ajoutez l'action XML > Démarrer une session dans l'étape Obtenir les données XML.
    2. Sous Fichier, sélectionnez Bureau, recherchez et sélectionnez l'exemple de fichier XML que vous avez téléchargé.
    3. Enregistrez les modifications.
  7. Pour obtenir tous les nœuds de films classés R, utilisez l'action Obtenir plusieurs nœuds.
    1. Ajoutez l'action XML > Obtenir plusieurs nœuds après l'action Démarrer une session.
    2. Dans Expression XPath, saisissez //movie[rating/text()='R'] et enregistrez l'action.
      L'ensemble de nœuds sélectionné est stocké dans une variable système et est disponible pour l'itérateur Pour chaque nœud dans un ensemble de données XML maintenant.
    3. Pour que l'action récupère l'ensemble des nœuds et non seulement les nœuds de texte, cliquez sur Expression Xpath.
  8. Utilisez l'action Boucle pour itérer au sein de l'ensemble de nœuds sélectionné que l'action Obtenir plusieurs nœuds récupère.
    1. Ajoutez Boucle > Boucle après l'action XML : Obtenir plusieurs nœudsaction.
    2. Sous Itérateur, sélectionnez XML > Pour chaque nœud dans un ensemble de données XML comme itérateur.
    3. Dans Attribuer la ligne active à cette variable, cliquez sur (x) et créez une variable avec le nom par défaut, par exemple, XMLNode. Chaque élément de l'ensemble de nœuds est maintenant disponible par le biais de la variable.
    4. Enregistrez le action.
  9. Pour obtenir le nom du film à partir du nœud itéré, utilisez l'action Obtenir un seul nœud.
    1. Ajoutez l'action XML > Obtenir un seul nœud dans l'action Boucle : Boucleaction.
    2. Dans Expression XPath, saisissez $XMLNode$/name.
    3. Dans Attribuer la sortie à une variable, créez une variable et nommez-la sMovieName.
    4. Enregistrez le action.
  10. Pour écrire le nom du film à partir de la variable XMLNode, utilisez l'action Définir la cellule.
    1. Ajoutez l'action Excel avancé > Définir la cellule après l'action Obtenir un seul nœud.
    2. Cliquez sur Cellule active, saisissez $sMovieName$ dans Valeur de la cellule, et enregistrez l'action.
  11. Pour sélectionner une nouvelle cellule dans la feuille Excel, utilisez l'action Accéder à la cellule.
    1. Ajoutez l'action Accéder à la cellule après l'action Définir la cellule après l'action Excel avancé : Définir la celluleaction.
    2. Cliquez sur Cellule active, sélectionnez Une cellule à droite, puis enregistrez l'action.
  12. Pour obtenir le nom du directeur à partir du nœud itéré, utilisez l'action Obtenir un seul nœud.
    1. Ajoutez l'action XML > Obtenir un seul nœud après l'action Excel avancé : Accéder à la celluleaction.
    2. Dans Expression XPath, saisissez $XMLNode$/director.
    3. Dans Attribuer la sortie à une variable, créez une variable avec le nom suivant : sDirector.
    4. Enregistrez le action.
  13. Pour écrire le nom du directeur à partir de la variable XMLNode, utilisez l'action Définir la cellule.
    1. Ajoutez l'action Excel avancé > Définir la cellule après l'action XML : Obtenir un seul nœudaction.
    2. Cliquez sur Cellule active, saisissez $sDirector$ dans Valeur de la cellule, et enregistrez l'action.
  14. Pour sélectionner une nouvelle cellule dans la feuille Excel, utilisez l'action Accéder à la cellule.
    1. Ajoutez l'action Accéder à la cellule après l'action Excel avancé : Définir la celluleaction.
    2. Cliquez sur Cellule active, sélectionnez Une cellule à droite, puis enregistrez l'action.
  15. Étant donné que le nœud<writers>peut contenir plusieurs nœuds<writer>obtenez le nom de chaque rédacteur, concaténez les noms et écrivez-les dans une seule cellule au lieu d'écrire des valeurs dans plusieurs cellules. Pour ce faire, ajoutez l'action Boucle dans l'action Boucle active.
    1. Pour obtenir le nombre de nœuds<writer>dans le nœud<writers>ajoutez XML > Exécuter la fonction XPath après l'action Excel avancé : Définir la celluleaction. Dans Expression XPath, saisissez count($XMLNode$/writers/writer). Dans Attribuer la sortie à une variable, créez une variable nommée sWriterCount.
      Vous utiliserez le nombre de nœuds<writer>pour parcourir en boucle tous les nœuds<writer>.
    2. Ajoutez l'action Boucle > Boucle après l'action XML : Exécuter la fonction XPathaction.
      Important : La deuxième action Boucle doit être ajoutée dans l'action Boucle principale.
    3. Sous Itérateur, sélectionnez Pour n fois comme itérateur.
    4. Dans Fois, saisissez la valeur suivante : $sWriterCount.String:toNumber$
      Remarque : sWriterCount contient une valeur de chaîne. Pour convertir une chaîne en nombre, vous pouvez utiliser le format
      lt;nom de la variable>.String:toNumber$. Par exemple, $sWriterCount.String:toNumber$.
    5. Dans Attribuer la valeur actuelle à une variable (facultatif), créez une variable nommée Counter.
    6. Enregistrez le action.
  16. Pour concaténer les valeurs de tous les nœuds writer, créez une variable de chaîne.
    1. Dans le volet Variables, cliquez sur l'icône plus.
      La fenêtre Créer la variable s'ouvre.
    2. Dans Type, sélectionnez Chaîne.
    3. Dans Nom, saisissez sWriters.
    4. Cliquez sur Créer.
  17. Pour obtenir la valeur du nœud<writer>itéré, utilisez l'action Obtenir un seul nœud.
    1. Ajoutez l'action XML > Obtenir un seul nœud dans l'action Boucle.
    2. Dans Expression XPath, saisissez $XMLNode$/writers/writer[$Counter.Number:toString$].
      À l'aide de la variable Counter, vous pouvez accéder à un nœud à un index spécifique. Notez que, comme la variable Counter contient une valeur numérique, l'expression .Number:toString$ est ajoutée à la variable Counter pour la convertir en chaîne.
    3. Dans Attribuer la sortie à une variable, créez une variable et nommez-la sWriter.
    4. Enregistrez le action.
  18. Pour attribuer des valeurs à partir des nœuds writer, utilisez l'action Chaîne > Attribuer.
    1. Ajoutez l'action Chaîne > Attribuer après XML : Obtenir un seul nœud dans la deuxième boucle.
    2. Dans le champ Sélectionner la ou les variable(s)/la valeur source (facultatif), saisissez $sWriters$, $sWriter$.
    3. Dans Sélectionner la variable de la chaîne de destination, sélectionnez sWriters.
    4. Enregistrez le action.
    Une fois la boucle interne terminée, la variable sWriters contiendra tous les noms des rédacteurs.
  19. Pour écrire les noms des rédacteurs dans une nouvelle cellule, utilisez l'action Excel avancé > Définir la cellule dans la boucle principale.
    1. Ajoutez l'action Excel avancé > Définir la cellule après l'action Boucle intérieure dans la première action Boucle.
    2. Cliquez sur Cellule active.
    3. Saisissez $sWriters$ dans Valeur de la cellule.
    4. Enregistrez le action.
    Les données extraites d'un nœud<movie>sont écrites dans une ligne. Pour écrire les données du nœud<movie>suivant, vous devez sélectionner la ligne suivante dans la feuille Excel.
  20. Pour déplacer le curseur sur la ligne suivante, utilisez l'action Excel avancé > Accéder à la cellule.
    1. Ajoutez l'action Accéder à la cellule après l'action Définir la cellule.
    2. Cliquez sur Cellule active, sélectionnez Début de la ligne, puis enregistrez l'action.
    3. Ajoutez à nouveau l'action Accéder à la cellule. Cliquez sur Cellule active, sélectionnez Une cellule en dessous, puis enregistrez l'action.
  21. Avant que le nœud suivant de l'ensemble de nœuds<movie>soit itéré, vous devez réinitialiser la variable sWriters. Pour réinitialiser la variable sWriters, effectuez les étapes suivantes :
    1. Ajoutez l'action Chaîne > Attribuer après Excel avancé : Accéder à la cellule dans la boucle principale.
    2. Laissez le champ Sélectionner la ou les variable(s)/la valeur source (facultatif) vide.
    3. Dans Sélectionner la variable de la chaîne de destination, sélectionnez sWriters.
    4. Enregistrez le action.
  22. Créez une nouvelle étape.
    1. Ajoutez l'action Étape > Étape après la deuxième action Étape.
    2. Dans Titre, saisissez Close the file.
  23. Pour fermer la feuille Excel, utilisez l'action Excel avancé Fermer.
    1. Ajoutez Excel avancé > Fermer dans l'étape Fermer le fichier.
    2. Enregistrez les modifications.
  24. Exécutez le robot.