7
votes

Créer une fonction XPath dans XSLT 1.0

Je cherche à créer ma propre fonction XPath dans XSLT-1.0. Par exemple, j'ai une expression de XPath simple que j'utilise à nouveau et à nouveau dans mon modèle XSLT. Je souhaite créer ma propre fonction XPath myOnfonction ($ var) code> qui appelle l'expression xpath.

Exemple Expression: P>

normalize-space(substring-after(substring-after($var, '-'), '-'))


3 commentaires

Bonne question, +1. Voir ma réponse pour une explication, un exemple particulier et une recommandation. :)


Merci à tous pour des réponses. XSLT 2.0 est agréable d'avoir pour moi, mais je suis la structure sur la version 1.0 dans le projet, je suis wokring sur.


@ Michal-Kreuzman: Le dernier lien de ma réponse n'était pas affiché - maintenant corrigé.


3 Réponses :


4
votes

XSLT 1.0 ne définit pas cette fonctionnalité. Il a été ajouté à XSLT 2.0. Vous devez soit utiliser 2,0, soit utiliser certains spécifiques de la mise en œuvre signifie faire cela.


0 commentaires

5
votes

Si vous êtes coincé avec 1.0, vous pouvez vérifier si votre processeur prend en charge Fonctions EXSLT .


0 commentaires

11
votes

Les deux réponses précédentes ont déclaré que tout: XSLT 1.0 ne fournit pas les moyens de créer des fonctions pouvant être référencées à partir d'une expression XPath.

Si quelqu'un veut de telles fonctionnalités, ils doivent commencer à utiliser XSLT 2.0 (et utiliser la norme instruction), ou:

  • Utilisez le élément d'extension fourni par EXSLT. Notez que très peu de processeurs XSLT 1.0 implémentent cet élément d'extension.

  • Utilisez une fonction de processeur XSLT particulière, si tel existe. Pour la plate-forme .NET, on peut utiliser le xsltContext classe, le ixsltContexction interface et techniques comme Ceci .

    Quoi qu'il en soit, tout cela n'est pas dans la programmation XSLT, mon conseil est donc de commencer à utiliser XSLT 2.0 au sérieux.


0 commentaires