Prise en charge améliorée de XPath

Traduit automatiquement de Deepl

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.

Fabrice Mainguené
- Product Owner -Fabrice Mainguené a rejoint l'équipe du programme 4D en novembre 2016. En tant que Product Owner, il est en charge de rédiger les user stories puis de les traduire en spécifications fonctionnelles. Son rôle est également de s'assurer que l'implémentation de la fonctionnalité livrée répond au besoin du client.Après avoir obtenu une licence en informatique au CNAM, Fabrice a rejoint une petite société d'édition de logiciels en tant que développeur Windev. Il a ensuite travaillé pour différentes entreprises dans les domaines de l'industrie et du commerce en tant que développeur Windev et web ainsi que conseiller technique sur les nouvelles fonctionnalités.