3 votes

Les jokers de correspondance XPath ?

Je cherche à utiliser un caractère générique dans un xpath où l'attribut est un chemin et je veux tous les chemins qui se terminent par "text".

Ejemplo : <Property name="jcr:content/MainParsys/*/text"/>

  • jcr:content/MainParsys est constant.
  • * est l'endroit où je veux le joker (tous les chemins entre les deux).
  • text est la dernière partie du chemin que je recherche.

De plus, il y a des chemins qui se terminent par /textIsRich que je veux éviter.

Cherchez : <Property name="jcr:content/MainParsys/*/text"/>

Éviter : <Property name="jcr:content/MainParsys/*/text *"/>

3voto

kjhughes Points 5581

XPath 1.0

Cette XPath,

//Property[@name[  starts-with(.,'jcr:content/MainParsys/')
         and substring(., string-length(.) - string-length('/text') +1) = '/text']]

sélectionnera tous les Property avec un name dont la valeur commence par 'jcr:content/MainParsys/' et se termine par '/text' (en utilisant la norme contournement de XPath 1.0 pour l'absence de ends-with() fonction ).

XPath 2.0

XPath 2.0 a ends-with() ainsi que des fonctions regex telles que matches() qui peuvent correspondre à des caractères génériques efficaces ( .* ), par exemple.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X