2010-06-17 16 views
1

je le morceau de code suivant:besoin d'un moyen de mettre en œuvre les matches de fonction() de XPath 2.0 avec des fonctions de XPath 1.0

root = "// expressionvaleur [matchs (self :: *, 'pattern ')]/.. "

Mais je ne peux utiliser XPath 1.0 et j'obtiens une exception pour la fonction matches(). Pouvez-vous s'il vous plaît m'aider avec une solution en utilisant uniquement des fonctions de XPath 1.0?

+0

Bonne question (1). Voir ma réponse pour l'explication et les moyens pour une solution de contournement. –

Répondre

0

Généralement, cela ne peut pas être fait simplement en utilisant XPath 1.0.

Cependant, il y a un ensemble de XPath 1.0 fonctions standard que vous pouvez utiliser pour le traitement de la chaîne:

  • substring()
  • substring-before()
  • substring-after()
  • translate()
  • normalize-space()
  • string-length()
  • count()
+0

Je connais ces fonctions ... mais j'ai besoin d'une solution ... si quelqu'un peut vous aider. –

+0

@ Jenny-Smith: Il n'y a aucun moyen d'avoir la fonction 'matches()' dans XSLT 1.0 sauf si vous l'implémentez vous-même en tant que fonction d'extension. Si vous pouvez faire quelque chose de "similaire" mais pas exactement la même chose, pensez à utiliser le module RegEx de EXSLT - si votre processeur XSLT implémente EXSLT, il peut implémenter le module RegEx. Si vous avez besoin de XPath ni d'hébergement en XSLT, seule la première option reste disponible. –