XPath est un langage vous permettant de travailler facilement avec vos documents XML. Il est déjà utilisable via la commande DOM Find XML element et avec 4D v18 R3, le support de la syntaxe XPath a été drastiquement amélioré. Si vous faites partie de ceux qui ont demandé des fonctionnalités telles que l’utilisation d’un joker dans un chemin, continuez à lire !
Pour utiliser la nouvelle syntaxe avec des applications existantes, vous devez cocher le paramètre de compatibilité « Use standard XPath ». Les bases de données nouvellement créées utilisent la nouvelle syntaxe par défaut. Vous pouvez désormais utiliser de nouvelles expressions telles que //, @, *, last() pour simplifier vos recherches.
Exemples d’écriture de prédicats
Nous allons utiliser le document XML suivant dans les exemples ci-dessous :
<?xml version="1.0" encoding="UTF-8"?> <bookstore> <book> <title lang="en">The Wheel of Time</title> <title lang="fr">La roue du temps</title> <price>29.99</price> </book> <book> <title lang="en">Harry Potter</title> <price>50.00</price> </book> <book> <title lang="en">Learning XML</title> <price>39.95</price> </book> </bookstore>
- Trouver l’avant-dernier élément livre qui est l’enfant de l’élément librairie :
$Dom_root2:=DOM Find XML element($Dom_root; "/bookstore/book[last()-1]" ;$arrAfound)
// Returns
//‹book›
// ‹title lang="en"›Harry Potter‹/title›
// ‹price›50.00‹/price›
//‹/book›
- Trouvez tous les éléments title qui ont un attribut « lang » avec une valeur de « fr » :
$Dom_root2:=DOM Find XML element($Dom_root;"//title[@lang='fr']" ;$arrAfound)
// Returns ‹title lang="fr"›La roue du temps‹/title›
- Trouvez tous les éléments de livre dont le prix est égal à 39,95 :
$Dom_root2:=DOM Find XML element($Dom_root; "book[price=39.95]" ;$arrAfound)</br />
// Returns
//‹book›
// ‹title lang="en"›Learning XML‹/title›
// ‹price›39.95‹/price›
//‹/book›
Ce ne sont là que quelques exemples de ce que vous pouvez faire avec les nouvelles expressions. Vous pouvez les mélanger de manière plus ou moins complexe pour trouver les résultats dont vous avez besoin. Reportez-vous à la documentation pour voir plus en détail ce que vous pouvez faire avec ces nouvelles améliorations.