Expressions XPath de base

Les expressions XPath sont utilisées dans des orchestrations et des définitions de schéma de fichier à plat lorsque vous devez identifier un ou plusieurs noeuds dans un message ou une variable pour accéder à des données ou déterminer si une condition a été satisfaite.

XPath est un standard XML qui définit des règles grammaticales pour identifier des noeuds ou des ensembles de noeuds dans des documents XML.

Vous pouvez éditer les expressions XPath par défaut générées dans les panneaux suivants :

  • Dans les panneaux Configurer des activités Pour chaque et Activité Séparer, une expression XPath est générée pour définir l'élément récurrent. Vous pouvez éditer l'expression XPath par défaut affichée dans la zone Nom d'élément.
  • Dans les panneaux Configurer des activités Pendant que et Si...alors, une expression XPath est générée dans le générateur d'expression pour définir les conditions. Vous pouvez éditer l'expression XPath par défaut affichée en cliquant sur Avancé.

XPath 2.0 est pris en charge.

Sélection de noeuds par chemin

XPath écrit l'emplacement d'éléments et d'attributs XML comme un chemin similaire à des URL ou des répertoires de votre système de fichiers local. Chaque élément ou attribut est un noeud dans une arborescence qui commence par le noeud racine. Le noeud racine contient la totalité de l'arborescence. Par conséquent, tout noeud de l'arborescence peut être trouvé en suivant un chemin qui descend vers les branches.

La syntaxe de base est :

/root-node/child-node/.../final-element-node

/root-node/child-node/.../final-element-node/@attribute-node

Vous pouvez déterminer ce chemin à partir du schéma XML qui décrit les messages.

XPath utilise le symbole @ comme une abréviation pour identifier des attributs. Les chemins sans @, ou le préfixe d'attribut, identifient des éléments par défaut. Par exemple :

 /PackingSlip/PONumber/Item

identifie l'élément Item figurant dans PONumber dans le noeud racine PackingSlip.

Noms de noeud et espaces de nom XML

Des noms de noeud peuvent également apparaître avec des espaces de nom tels que tns:OrderNumber ou *:Item. La partie du nom jusqu'au deux-points est un préfixe qui identifie un espace de nom et le signe deux-points est le délimiteur entre l'espace de nom et le nom local du noeud.

Les espaces de nom correspondent à une valeur standard XML utilisée pour identifier de manière unique des éléments ou des attributs lorsque des documents partagent le contenu de plusieurs schémas. Cast Iron Studio affecte et gère automatiquement des espaces de nom pour les schémas XML utilisés dans des documents de configuration.

Remarque : Chaque schéma au sein d'une définition de WSDL peut être défini par un espace de nom.

Sélection conditionnelle de noeuds avec des prédicats

Vous pouvez parfois vouloir sélectionner un noeud uniquement si une condition est satisfaite. Ces conditions de sélection sont appelées prédicats.

Vous définissez des prédicats à l'intérieur de crochets, par exemple :

/PV1/PatientDepartment[text()='Nursery']

Cette expression sélectionne le noeud PatientDepartment uniquement si les données du noeud correspondent à Nursery.

/Order/OrderDetail/Item[5]

Cette expression sélectionne le cinquième noeud Item dans OrderDetail.

Opérateurs valides pour des conditions

Les expressions XPath peuvent également être des conditions booléennes qui prennent la valeur true ou false. Ces expressions permettent de sélectionner des noeuds spécifiques ou simplement d'identifier une condition qui doit être satisfaite. Vous pouvez utiliser le générateur d'expression pour vous aider à définir des conditions. Les opérateurs XPath qui peuvent apparaître dans des expressions incluent :

  • = (égal à)
  • != (non égal à)
  • < (inférieur à)
  • > (supérieur à)
  • <= (inférieur ou égal à)
  • >= (supérieur ou égal à)

Fonctions dans des expressions XPath

XPath peut également contenir des fonctions qui vous permettent de manipuler des données à partir de noeuds. Cela peut s'avérer utile lors de la génération de lignes d'objet qui contiennent un texte constant et des données dynamiques issues de messages. Les fonctions XPath permettent également de gérer des exigences telles que la suppression d'espace ou la vérification qu'une clé de travail a bien le type de données chaîne. Voici quelques unes des fonctions XPath communes :
concat()
Vous permet de combiner un nombre quelconque de chaînes et les données provenant de noeuds en respectant l'ordre dans lequel les paramètres sont spécifiés. Vous pouvez indiquer des chemins XPath en tant que paramètres. Spécifiez les chaînes de texte constant entre apostrophes. Par exemple :

concat('New Order # ',/Orders/Order/OrdNumber)

count()
Vous permet de compter le nombre de noeuds dans le paramètre que vous spécifiez. En règle générale, le paramètre est une expression de chemin XPath qui identifie plusieurs noeuds, par exemple, tous les noeuds Item qui sont des enfants de PODetail. Par exemple :

count(/Orders/Order)

normalize-space()
Permet d'enlever tous les espaces de début et de fin du paramètre d'entrée et de normaliser l'ensemble de l'espace dans l'entrée en caractères espace et sauts de ligne uniques. Par exemple :

normalize-space(/Job/Address/Line1)

number()
Permet de convertir le paramètre en type de données nombre. Vous pouvez utiliser cette fonction pour vous assurer que les chaînes sont traitées comme des nombres. Par exemple :

number(/PurchaseOrder/POTotal)

string()
Permet de convertir le paramètre en type de données chaîne. Cette fonction permet de s'assurer que des noeuds numériques ou de date sont traités en tant que chaînes. Par exemple :

string(/PurchaseOrder/VendorID)

translate()
Permet de remplacer des caractères par d'autres caractères dans le premier paramètre que vous spécifiez. Le deuxième paramètre est le ou les caractères à remplacer et le troisième paramètre correspond aux caractères de remplacement. Cette fonction peut s'avérer utile pour vous assurer que des clés de travail sont toutes en majuscules, par exemple.

translate(/Issue/ShortDescr,

'abcdefghijklmnopqrstuvwxyz',

'ABCDEFGHIJKLMNOPQRSTUVWXYZ')

Vous trouverez la liste complète des fonctions XPath dans la spécification XPath (http://www.w3.org/TR/xpath).

Test des expressions XPath

Vous pouvez tester vos expressions XPath par rapport à des données de test XML à l'aide de l'évaluateur XPath.