Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks > XML > XSL & XSLT
XSL & XSLT Forum d'entraide pour les extensions XSL et XSLT permettant de manipuler vos documents XML à l'aide de feuilles de style et de transformations avec PHP. Avant de poster -> tutoriels XSL et XSLT
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 16/07/2007, 17h00   #1
Membre du Club
 
Avatar de krapno
 
Inscription : mai 2005
Messages : 180
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : mai 2005
Messages : 180
Points : 42
Points : 42
Par défaut [XSL] Processeur XSLT PHP5 et EXSLT.org

Bonjour,


je désire utiliser les fonctions exslt dans un template xsl, hors je note que le processeur xslt fournie par PHP5 est libxml, celui-ci ne prend pas en charge les fonctions d'exslt.org telle que regexp:replace()

Voir: http://www.exslt.org/regexp/function...p.replace.html

exslt.org indique sur cette page que la fonction qui m'interesse est prise en charge par le processeur suivant: "4XSLT, from 4Suite"

Savez-vous s'il est possible de choisir ce processeur plutôt que libxml pour une installaltion de PHP5 sous environnement Windows 2003+IIS ? Et si oui comment ?

Sinon en fait je cherche à épurer le contenu d'un noeud xml de ses balises HTML via une fonction XSLT, merci pour vos suggestions

Très cordialement,
__________________
Krapno
krapno est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/07/2007, 17h15   #2
Expert Confirmé Sénior
 
Avatar de GrandFather
 
Inscription : mai 2004
Messages : 4 490
Détails du profil
Informations personnelles :
Âge : 42

Informations forums :
Inscription : mai 2004
Messages : 4 490
Points : 5 049
Points : 5 049
Bonjour,

Citation:
Envoyé par krapno
Savez-vous s'il est possible de choisir ce processeur plutôt que libxml pour une installaltion de PHP5 sous environnement Windows 2003+IIS ? Et si oui comment ?
4XSLT, c'est du Python (avec quelques routines écrites en C). Donc, pas possible de l'utiliser (pas de manière simple et efficace, en tout cas) avec PHP.

En l'occurrence, tu n'as pas besoin des extensions EXSLT, car tu as à disposition beaucoup mieux : l'ensemble des fonctions PHP. En effet, libxslt (le processeur XSLT diffusé avec PHP, libxml2 étant le parseur XML) offre la possibilité d'exécuter des fonctions PHP dans du code XSLT, voir la fonction registerPHPFunctions.
__________________
FAQ XML
------------
« Le moyen le plus sûr de cacher aux autres les limites de son savoir est de ne jamais les dépasser »
Giacomo Leopardi
GrandFather est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/09/2007, 11h08   #3
Membre du Club
 
Avatar de krapno
 
Inscription : mai 2005
Messages : 180
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : mai 2005
Messages : 180
Points : 42
Points : 42
Bonjour,

Désolé d'avoir laissé refroidir ce topic, vacances et deplacements oblige

Je reviens donc sur ma problematique, je recherche à exploiter quelques fonctions complexes de XSLT afin precisément de nettoyer des noeuds XML contenant du code html de toute balise.

J'ai donc cherché à faire du replace avec une expression regulière, exslt propose ce type de fonction mais je ne peux l'exploiter à cause de l'interpréteur.

A présent vous me proposer de "libérer" quelques fonctions php afin de les rendre exploitables dans du code XSLT, je vais tester un peu çà mais ceci tend à m'éloigner de quelques règles que je me suis fixé dans mon projet, je desirerais ne pas avoir à exploiter autre chose que les ressources de XSLT pour organiser ma mise en forme.

Très cordialement,
__________________
Krapno
krapno est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/09/2007, 11h52   #4
Membre du Club
 
Avatar de krapno
 
Inscription : mai 2005
Messages : 180
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : mai 2005
Messages : 180
Points : 42
Points : 42
voilà, en attendant de trouver une solution "pure xslt" j'ai implémenté ceci:

Coté PHP:
Code :
1
2
3
4
$proc = new XSLTProcessor;
$proc->importStyleSheet($xsl);
$proc->registerPHPFunctions(array("strip_tags"));
$proc->transformToXML($xml);
Coté feuille XSLT:
Code :
<xsl:value-of select="php:function('strip_tags',string(mon_noeud_avec du_html_dedans))" disable-output-escaping="yes" />
avec dans l'en-tête:
Code :
1
2
3
4
5
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet 
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:php="http://php.net/xsl"
    version="1.0">
Ce qui a bien pour effet de nettoyer toute balise html mais conserve les accents etc...

Cordialement,
__________________
Krapno
krapno est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 17h19.


 
 
 
 
Partenaires

Hébergement Web