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

XML/XSL et SOAP Discussion :

Comment démarrer en XSL via PHP5


Sujet :

XML/XSL et SOAP

  1. #1
    Membre confirmé Avatar de a028762
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    419
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 419
    Points : 537
    Points
    537
    Par défaut Comment démarrer en XSL via PHP5
    Bonjour, je connais le XML depuis pas mal de temps, et je l'utilise directement via PHP, par exemple pour un site multilingue, je stocke les traductions diverses en XML et les récupère dans mon interface pour l'afficher via SimpleXML.
    Pour le XSLT, je m'en passais volontiers jusqu'au jour ou un collègue facétieux m'a montré l'avantage d'utiliser le XSL pour traduite directement le XML vers le HTML sans passer par des tableaux PHP ou je finissais par me mélanger les pinceaux...
    Donc, je fonce sur les Tutoriaux de Developpez , hélas, les tutos de débutant parlent de xml_create qui est une fonction obsolete en PHP5. et DOM est sûrement très bien, mais pour un (vieux) débutant, comment faire ?
    Olivier

  2. #2
    Membre confirmé Avatar de a028762
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    419
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 419
    Points : 537
    Points
    537
    Par défaut Bon, je farfouille, intégration au PHP5 pas facile ...
    Bon, ça se précise, mais encore trop de doutes ...
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    <?php
    define ('br','<br />'); # Là, ç'est une manie d'OL
     
    $Liste = "liste.xml"; # Fichier XML a utiliser
    $Sheet = "liste.xsl"; # Feuille XSLT de mise en forme
     
    $Doc = new DOMDocument();
     
    $Etat = $Doc->load($Liste);
    if (!$Etat) {
        echo "DOMDocument planté avec '".$Liste."' ".br;
    } else {
        $Xsl = new XSLTProcessor();
     
        $Etat = $Xsl->importStyleSheet($Sheet);
        if (!$Etat) {
            echo "XSLTProcessor planté avec '".$Sheet."' ".br;  # Las, c'est là qu'on passe !
        } else {
            echo "Etat:".$Etat.br;
            $Html = $Xsl->transformToXML($Doc);
            echo $Html;
        }
    }
    ?>
    Sur linux, il faut installer les modules un par un (php5-xsl l'est)
    un phpinfo affiche également xmlreader et xmlwriter mais est-ce en rapport ...
    hélas, ça plante encore, sur XSLTProcessor. Est-ce un problème de compatibilité PHP5 ?
    Ah, l'entrée de importStyleSheet est un objet DOM et non un fichier ...

  3. #3
    Membre confirmé Avatar de a028762
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    419
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 419
    Points : 537
    Points
    537
    Par défaut Yahoo, ça marche ....
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    <?php
    define ('br','<br />');                                                 # C'est une de mes manies
     
    $Liste = "liste.xml";                                                # Fichier XML des données
    $Sheet = "liste.xsl";                                                # Fichier XSL de mise en forme
     
    $Doc    = new DOMDocument();
    $Etat    = $Doc->load($Liste);
    if (!$Etat) {
        echo "DOMDocument planté avec '".$Liste."' ".br;
    } else {
        $SheetXml = simplexml_load_file($Sheet);                        # Dommage, je n'ai pas compris pourquoi un DOMDocument ne ferait pas l'affaire 
     
        $Xsl = new XSLTProcessor();
        $Etat = $Xsl->importStyleSheet($SheetXml);                        # Charge la mise en forme
        if (!$Etat) {
            echo "XSLTProcessor planté avec '".$Sheet."' ".br;
        } else {
            $Html = $Xsl->transformToXML($Doc);                            # Transforme la donnée en HTML
            echo $Html;                                                    # Yahoo, ça marche !
        }
    }
    ?>

  4. #4
    Membre confirmé Avatar de a028762
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    419
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 419
    Points : 537
    Points
    537
    Par défaut
    In fine , ma fonction en PHP5
    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    # =================================================================== Afficher un XML avec sa XSL
    function AfficherXML($Liste,$Grille) {
        #    $Liste    Fichier XML a afficher
        #    $Grille    Fichier XSL faisant la mise en page
        # --------------------------------------------------------------- Contrôle des Entrées
        if (!file_exists($Liste)) {
            $Message = "Liste XML à afficher '".basename($Liste)."' non trouvée ";
        } else {
            if (!file_exists($Grille)) {
                $Message = "Grille XSL '".basename($Grille)."' non trouvée ";
            } else {
                # ------------------------------------------------------- Préparation XML
                $Doc    = new DOMDocument();
                $Etat    = $Doc->load($Liste);
                if (!$Etat) {
                    $Message = "DOMDocument avec '".basename($Liste)."' planté ";
                } else {
                    #    $SheetXml = simplexml_load_file($Sheet);        # Dommage, je n'ai pas compris pourquoi un DOMDocument ne ferait pas l'affaire 
                    $GrilleXml    = new DOMDocument();                    # Là, si ça marche aussi avec DOM
                    $Etat        = $GrilleXml->load($Grille);
                    if (!$Etat) {
                        $Message = "DOMDocument avec '".basename($Grille)."' planté";
                    } else {
                        $Xsl = new XSLTProcessor();
                        $Etat = $Xsl->importStyleSheet($GrilleXml);        # Charge la mise en forme
                        if (!$Etat) {
                            $Message = "XSLTProcessor avec '".basename($Grille)."' planté";
                        } else {
                            $Html = $Xsl->transformToXML($Doc);            # Transforme la donnée en HTML
                            # ------------------------------------------- Affichage HTML
                            echo $Html;                                    # Yahoo, ça marche !
                        }
                    }
                }
            }
        }
        return $Message;
    }

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 11
    Dernier message: 23/08/2007, 18h07
  2. [CF][VB.NET/PPC] Comment installer un .cab via un autre .cab ?
    Par borgfabr dans le forum Windows Mobile
    Réponses: 8
    Dernier message: 04/05/2005, 12h42
  3. [XML][C++] Débutant , comment démarrer ?
    Par Clad3 dans le forum Bibliothèques
    Réponses: 17
    Dernier message: 28/03/2005, 19h43
  4. Comment démarrer manuellement un service NT ?
    Par Desraux dans le forum API, COM et SDKs
    Réponses: 4
    Dernier message: 21/03/2005, 09h35

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