
| |
Permet de substituer une chaîne à une autre, un nombre maximal de fois.
Le XML |
<? xml version="1.0" encoding="UTF-8"? >
< text >
Ce fichier servira de test pour verifier les fonctions.
Ce fichier servira de test pour verifier les fonctions.
< / text >
|
Le XSLT |
<? xml version="1.0" encoding="UTF-8"? >
< xsl : stylesheet version = " 1.0 " xmlns : xsl = " http://www.w3.org/1999/XSL/Transform " >
< xsl : output method = " xml " version = " 1.0 " encoding = " UTF-8 " indent = " yes " / >
< xsl : template match = " / " >
< res >
< test2 >
< xsl : call-template name = " Replace " >
< xsl : with-param name = " chaine " select = " text " > < / xsl : with-param >
< xsl : with-param name = " chaineCherche " select = " 'test' " > < / xsl : with-param >
< xsl : with-param name = " chaineRempl " select = " 'essai' " > < / xsl : with-param >
< xsl : with-param name = " Occur " select = " 1 " > < / xsl : with-param >
< / xsl : call-template >
< / test2 >
< test1 >
< xsl : call-template name = " Replace " >
< xsl : with-param name = " chaine " select = " text " > < / xsl : with-param >
< xsl : with-param name = " chaineCherche " select = " 'test' " > < / xsl : with-param >
< xsl : with-param name = " chaineRempl " select = " 'essai' " > < / xsl : with-param >
< / xsl : call-template >
< / test1 >
< / res >
< / xsl : template >
< xsl : template name = " Replace " >
< xsl : param name = " chaine " / >
< xsl : param name = " chaineCherche " / >
< xsl : param name = " chaineRempl " / >
< xsl : param name = " Occur " / >
< xsl : choose >
< xsl : when test = " contains($chaine,$chaineCherche) " >
< xsl : choose >
< xsl : when test = " number($Occur)=0 " >
< xsl : value-of select = " $chaine " / >
< / xsl : when >
< xsl : when test = " $Occur>0 " >
< xsl : call-template name = " Replace " >
< xsl : with-param name = " chaine " select = " concat(substring-before($chaine,$chaineCherche),$chaineRempl,substring-after($chaine,$chaineCherche)) " / >
< xsl : with-param name = " chaineCherche " select = " $chaineCherche " / >
< xsl : with-param name = " chaineRempl " select = " $chaineRempl " / >
< xsl : with-param name = " Occur " select = " $Occur - 1 " / >
< / xsl : call-template >
< / xsl : when >
< xsl : otherwise >
< xsl : call-template name = " Replace " >
< xsl : with-param name = " chaine " select = " concat(substring-before($chaine,$chaineCherche),$chaineRempl,substring-after($chaine,$chaineCherche)) " / >
< xsl : with-param name = " chaineCherche " select = " $chaineCherche " / >
< xsl : with-param name = " chaineRempl " select = " $chaineRempl " / >
< / xsl : call-template >
< / xsl : otherwise >
< / xsl : choose >
< / xsl : when >
< xsl : otherwise >
< xsl : value-of select = " $chaine " / >
< / xsl : otherwise >
< / xsl : choose >
< / xsl : template >
< / xsl : stylesheet >
|
Le Résultat |
<? xml version="1.0" encoding="UTF-8"? >
< res >
< test2 >
Ce fichier servira de essai pour verifier les fonctions.
Ce fichier servira de test pour verifier les fonctions.
< / test2 >
< test1 >
Ce fichier servira de essai pour verifier les fonctions.
Ce fichier servira de essai pour verifier les fonctions.
< / test1 >
< / res >
|
|
| |
La fonction translate permet de remplacer caractère par caractère,
mais on a plus souvent besoin de remplacer toute une partie de la chaîne, ce template permet de le faire.
Le XML |
<? xml version="1.0" encoding="UTF-8"? >
< text >
Ce fichier servira de test pour verifier les fonctions.
Ce fichier servira de test pour verifier les fonctions.
< / text >
|
Le XSLT |
<? xml version="1.0" encoding="UTF-8"? >
< xsl : stylesheet version = " 1.0 " xmlns : xsl = " http://www.w3.org/1999/XSL/Transform " >
< xsl : output method = " xml " version = " 1.0 " encoding = " UTF-8 " indent = " yes " / >
< xsl : template match = " / " >
< res >
nombre de fois (test):
< xsl : call-template name = " CharOccur " >
< xsl : with-param name = " chaine " select = " text " > < / xsl : with-param >
< xsl : with-param name = " chaineCherche " select = " 'test' " > < / xsl : with-param >
< / xsl : call-template >
< / res >
< / xsl : template >
< xsl : template name = " CharOccur " >
< xsl : param name = " chaine " / >
< xsl : param name = " chaineCherche " / >
< xsl : param name = " Occur " select = " 0 " / >
< xsl : choose >
< xsl : when test = " contains($chaine,$chaineCherche) " >
< xsl : call-template name = " CharOccur " >
< xsl : with-param name = " chaine " select = " substring-after($chaine,$chaineCherche) " / >
< xsl : with-param name = " chaineCherche " select = " $chaineCherche " / >
< xsl : with-param name = " Occur " select = " $Occur+1 " / >
< / xsl : call-template >
< / xsl : when >
< xsl : otherwise >
< xsl : value-of select = " $Occur " / >
< / xsl : otherwise >
< / xsl : choose >
< / xsl : template >
< / xsl : stylesheet >
|
Le Résultat |
<? xml version="1.0" encoding="UTF-8"? >
< res >
nombre de fois (test) :
2
< / res >
|
|
| |
Permet de récupérer la chaîne (ou le nombre) présent le plus fréquement dans un document.
Le XML |
<? xml version="1.0" encoding="UTF-8"? >
< liste >
< y > a< / y >
< y > b< / y >
< y > a< / y >
< y > b< / y >
< y > b< / y >
< y > c< / y >
< y > a< / y >
< y > b< / y >
< / liste >
|
Le XSLT |
<? xml version="1.0" encoding="UTF-8"? >
< xsl : stylesheet version = " 1.0 " xmlns : xsl = " http://www.w3.org/1999/XSL/Transform " >
< xsl : output method = " text " / >
< xsl : template match = " / " >
La chaîne revenant le plus souvent : < xsl : call-template name = " maxOccur " >
< xsl : with-param name = " noeuds " select = " */* " > < / xsl : with-param >
< / xsl : call-template >
Nombre d'occurrence de cette chaine : < xsl : call-template name = " maxOccurNb " >
< xsl : with-param name = " noeuds " select = " */* " > < / xsl : with-param >
< / xsl : call-template >
< / xsl : template >
< xsl : template name = " maxOccur " >
< xsl : param name = " noeuds " / >
< xsl : choose >
< xsl : when test = " not($noeuds[.!=$noeuds[1]]) " >
< xsl : value-of select = " $noeuds[1] " / >
< / xsl : when >
< xsl : otherwise >
< xsl : choose >
< xsl : when test = " count($noeuds[.=$noeuds[1]]) >= count($noeuds[.=($noeuds[. != $noeuds[1]])[1]]) " >
< xsl : call-template name = " maxOccur " >
< xsl : with-param name = " noeuds " select = " $noeuds[.!=($noeuds[. != $noeuds[1]])[1]] " / >
< / xsl : call-template >
< / xsl : when >
< xsl : otherwise >
< xsl : call-template name = " maxOccur " >
< xsl : with-param name = " noeuds " select = " $noeuds[.!=$noeuds[1]] " / >
< / xsl : call-template >
< / xsl : otherwise >
< / xsl : choose >
< / xsl : otherwise >
< / xsl : choose >
< / xsl : template >
< xsl : template name = " maxOccurNb " >
< xsl : param name = " noeuds " / >
< xsl : choose >
< xsl : when test = " not($noeuds[.!=$noeuds[1]]) " >
< xsl : value-of select = " count($noeuds) " / >
< / xsl : when >
< xsl : otherwise >
< xsl : choose >
< xsl : when test = " count($noeuds[.=$noeuds[1]]) >= count($noeuds[.=($noeuds[. != $noeuds[1]])[1]]) " >
< xsl : call-template name = " maxOccurNb " >
< xsl : with-param name = " noeuds " select = " $noeuds[.!=($noeuds[. != $noeuds[1]])[1]] " / >
< / xsl : call-template >
< / xsl : when >
< xsl : otherwise >
< xsl : call-template name = " maxOccurNb " >
< xsl : with-param name = " noeuds " select = " $noeuds[.!=$noeuds[1]] " / >
< / xsl : call-template >
< / xsl : otherwise >
< / xsl : choose >
< / xsl : otherwise >
< / xsl : choose >
< / xsl : template >
< / xsl : stylesheet >
|
Le Résultat |
La chaîne revenant le plus souvent : b
Nombre d'occurrence de cette chaine : 4
|
|
Consultez les autres pages sources
Les sources présentés sur cette page sont libres de droits,
et vous pouvez les utiliser à votre convenance. Par contre cette page de présentation de ces sources constitue une oeuvre intellectuelle protégée par les droits d'auteurs.
Copyright ©2006
Developpez LLC. Tous droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de
l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à 3 ans
de prison et jusqu'à 300 000 E de dommages et intérêts.
Cette page est déposée à la SACD.
|