IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bibliothèques et frameworks PHP Discussion :

[XSL] Processeur XSLT PHP5 et EXSLT.org


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Membre régulier Avatar de krapno
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    180
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 180
    Points : 74
    Points
    74
    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,

  2. #2
    Expert éminent
    Avatar de GrandFather
    Inscrit en
    Mai 2004
    Messages
    4 587
    Détails du profil
    Informations personnelles :
    Âge : 54

    Informations forums :
    Inscription : Mai 2004
    Messages : 4 587
    Points : 7 103
    Points
    7 103
    Par défaut
    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.

  3. #3
    Membre régulier Avatar de krapno
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    180
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 180
    Points : 74
    Points
    74
    Par défaut
    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,

  4. #4
    Membre régulier Avatar de krapno
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    180
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 180
    Points : 74
    Points
    74
    Par défaut
    voilà, en attendant de trouver une solution "pure xslt" j'ai implémenté ceci:

    Coté PHP:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $proc = new XSLTProcessor;
    $proc->importStyleSheet($xsl);
    $proc->registerPHPFunctions(array("strip_tags"));
    $proc->transformToXML($xml);
    Coté feuille XSLT:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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,

Discussions similaires

  1. Processeur XSLT et UTF-8
    Par sovitec dans le forum API, COM et SDKs
    Réponses: 3
    Dernier message: 08/09/2005, 10h08
  2. générer un fichier xml à partir xsl ou xslt
    Par sarah1 dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 17/05/2005, 17h57
  3. [XSLT][PHP5] Impossible d'obtenir les CDATAS ...
    Par Atruskor dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 21/02/2005, 16h04
  4. Difference entre XSL et XSLT
    Par Spyco dans le forum XMLRAD
    Réponses: 4
    Dernier message: 02/09/2004, 16h55
  5. La difference entre XSL et XSLT?
    Par pantin dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 27/06/2003, 15h14

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo