Filtrer les éléments de structure - 7.3

Guide d'utilisation de Talend Data Mapper

Version
7.3
Language
Français
Product
Talend Big Data Platform
Talend Data Fabric
Talend Data Management Platform
Talend Data Services Platform
Talend MDM Platform
Talend Real-Time Big Data Platform
Module
Studio Talend
Content
Création et développement > Création de Jobs
Last publication date
2023-01-09

Utilisez la propriété XPath Name (Nom XPath) pour filtrer les éléments dans une structure en vous basant sur la valeur d'un attribut.

Pourquoi et quand exécuter cette tâche

Dans cet exemple, un fichier XML contient des informations relatives à des commandes. Chaque élément order a un attribut status. Vous pouvez configurer la structure pour traiter uniquement les commandes ayant le statut pending.

Vous pouvez effectuer cette opération en créant une map avec un filtre sur la boucle de sortie, mais configurer un filtre dans la structure avec la propriété XPath Name (Nom XPath) peut s'avérer utile si vous souhaitez que ce filtre soit automatiquement appliqué dans toutes les maps utilisant cette structure en entrée.

Vous pouvez utiliser l'échantillon XML suivant :
<orders>
    <order status="pending">
        <orderId>189465984</orderId>
        <customer>
            <lastName>Smith</lastName>
            <firstName>Jane</firstName>
        </customer>
    </order>
    <order status="completed">
        <orderId>189465971</orderId>
        <customer>
            <lastName>Doe</lastName>
            <firstName>John</firstName>
        </customer>
    </order>
    <order status="pending">
        <orderId>189465987</orderId>
        <customer>
            <lastName>Jones</lastName>
            <firstName>Lauren</firstName>
        </customer>
    </order>
</orders>

Procédure

  1. Créez une structure d'entrée et de sortie basées sur l'échantillon XML fourni.
    Pour plus d'informations, consultez Créer une structure à partir d'un document échantillon.
    Conseil : Vous pouvez créer une structure, cliquer-droit dessus et sélectionner Duplicate (Dupliquer) pour créer la seconde.
  2. Ouvrez votre structure d'entrée, cliquez sur la liste déroulante Read Only (Lecture seule) et sélectionnez Editable (Modifiable).
  3. Cliquez sur l'élément order, faites défiler jusqu'à la propriété XPath Name (Nom XPath) et saisissez order[@status='pending'].
    Cela indique que la structure doit lire uniquement les éléments order ayant un attribut status="pending".
  4. Créez une map standard et ajoutez vos structures d'entrée et de sortie.
  5. Glissez-déposez l'élément d'entrée orders sur la sortie correspondante, afin de mapper tous les éléments.
  6. Cliquez sur Test Run (Exécution de test) pour voir les résultats.

Résultats

Dans cet exemple, la sortie se présente comme suit :
<orders>
  <order status="pending">
    <orderId>189465984</orderId>
    <customer>
      <lastName>Smith</lastName>
      <firstName>Jane</firstName>
    </customer>
  </order>
  <order status="pending">
    <orderId>189465987</orderId>
    <customer>
      <lastName>Jones</lastName>
      <firstName>Lauren</firstName>
    </customer>
  </order>
</orders>