exists
Retourne true si le nœud connecté existe; false sinon. Puisqu’elle retourne une valeur booléenne, cette fonction est généralement utilisée avec filters, pour filtrer uniquement les enregistrements qui ont (ou peut-être qui n’ont pas) un élément ou un attribut enfant.
Langages
Built-in, C++, C#, Java, XQuery, XSLT 1.0, XSLT 2.0, XSLT 3.0.
Paramètres
Nom | Description |
---|---|
node | L’existence du nœud doit être testée. |
Exemples
Le mappage suivant illustre comment filtrer des données avec l’aide de la fonction exists. Ce mappage est appelé PersonListsForAllBranchOffices.mfd et peut être trouvé dans le répertoire <Documents>\Altova\MapForce2025\MapForceExamples\.
PersonListsForAllBranchOffices.mfd
Dans le fichier source BranchOffices.xml, vous trouverez trois éléments Office. Notablement, un des trois bureaux n’a pas d’éléments enfant Contact. L’objectif de ce mappage est multiple :
a) pour chaque bureau, extraire une liste des contacts qui existent dans ce bureau
b) pour chaque bureau, créer un fichier XML séparer avec le même nom dans le bureau
c) ne pas générer le fichier XML si le bureau n’a pas de contacts.
Pour atteindre ces objectifs, un filtre a été ajouté au mappage. Le filtre fait passer vers la cible uniquement les items Office où au moins un item Contact existe. Cette condition booléenne est fournie par la fonction exists. Si le résultat de la fonction est true, le nom du bureau est concaténé avec le string .xml afin de produire le nom de fichier de cible. Pour plus d’informations concernant la génération des noms de fichier depuis le mappage, voir Traiter plusieurs fichiers d’entrée ou de sortie dynamiquement .
Un autre exemple est le mappage suivant : <Documents>\Altova\MapForce2025\MapForceExamples\HasMarketingExpenses.mfd. Ici, si un expense-item existe dans le XML source, alors l’attribut hasExpenses est défini sur true dans le fichier XML de cible.
HasMarketingExpenses.mfd