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 :
XPath 2.0 est pris en charge.
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/Itemidentifie l'élément Item figurant dans PONumber dans le noeud racine PackingSlip.
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. WebSphere Cast Iron Studio affecte et gère automatiquement des espaces de nom pour les schémas XML utilisés dans des documents de configuration.
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.
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 :
concat('New Order # ',/Orders/Order/OrdNumber)
count(/Orders/Order)
normalize-space(/Job/Address/Line1)
string(/PurchaseOrder/VendorID)
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).
Vous pouvez tester vos expressions XPath par rapport à des données de test XML à l'aide de l'évaluateur XPath.