Accéder au contenu principal Passer au contenu complémentaire

Filtrer les éléments de structure

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.
    Note InformationsConseil : 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>

Cette page vous a-t-elle aidé ?

Si vous rencontrez des problèmes sur cette page ou dans son contenu – une faute de frappe, une étape manquante ou une erreur technique – faites-le-nous savoir.