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

XSL/XSLT/XPATH XML Discussion :

[XML-XSLT-PHP] Récupération de l'heure courante dans xml


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 16
    Points : 7
    Points
    7
    Par défaut [XML-XSLT-PHP] Récupération de l'heure courante dans xml
    Bonjour,

    Je pense que le titre est assez criant ! Je souhaiterais utiliser l'heure courante (du serveur) dans un fichier xml, je précise que je ne peux pas le passer par des variables dans l'url, mais pourquoi pas une variable globale déclarée dans le fichier php avant l'inclusion du fichier xml...
    Seulement comment la récupérer et l'utiliser alors dans le fichier xml ?

    > Pour info tout ceci a pour but de le comparer avec un fichier xml et de choisir la valeur la plus proche et supérieure à mettre en page avec xslt...

    Merci d'avance pour votre coup de main !

  2. #2
    Rédacteur

    Avatar de Erwy
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2003
    Messages
    4 967
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2003
    Messages : 4 967
    Points : 10 927
    Points
    10 927

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 34
    Points : 39
    Points
    39
    Par défaut
    Sinon si tu utilises un processeur XSLT 2 pour tes transformations, tu pourras alors utiliser la fonction current-time() qui te donne directement l'heure courante (et ça marche même si tu n'utilises pas PHP !)

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 16
    Points : 7
    Points
    7
    Par défaut
    Heu dites je suis surement assez nul mais je ne comprends pas un mot de ce que vous dites.... Comment puis-je savoir quel processeur j'utilise ? Et que fais-je de la page donné par erwy ??? Je patoge à 1000%

  5. #5
    Rédacteur

    Avatar de Erwy
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2003
    Messages
    4 967
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2003
    Messages : 4 967
    Points : 10 927
    Points
    10 927
    Par défaut
    Citation Envoyé par Milouse
    Sinon si tu utilises un processeur XSLT 2 pour tes transformations, tu pourras alors utiliser la fonction current-time() qui te donne directement l'heure courante (et ça marche même si tu n'utilises pas PHP !)
    Attention ce que tu dis est en partie faux.
    1) xslt 2.0 n'est pas encore une norme

    2)Il n'y pas de fonction current-time() en xslt 2.0

    http://www.w3.org/TR/xslt20/

    The current date and time represents an implementation-dependent point in time during processing of the transformation; it does not change during the course of the transformation.
    [Definition: The term implementation-dependent refers to a feature where the behavior may vary from one implementation to another, and where the vendor is not expected to provide a full specification of the behavior.] (This might apply, for example, to limits on the size of source documents that can be transformed.)
    En gros actuellement cela peut varier d'un proc a un autre, et ne pas oublier que les proc v2.0 sont des "betas" puisque ce n'est pas une norme, et donc les utiliser avec parcimonie

  6. #6
    Rédacteur

    Avatar de Erwy
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2003
    Messages
    4 967
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2003
    Messages : 4 967
    Points : 10 927
    Points
    10 927
    Par défaut
    Citation Envoyé par mamat-
    Comment puis-je savoir quel processeur j'utilise ? Et que fais-je de la page donné par erwy ??? Je patoge à 1000%
    Un exemple de php pour passer des parametres dans la feuilles de style Lis la section FAQ premiere annonce du forum xml

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 16
    Points : 7
    Points
    7
    Par défaut
    Oui j'ai essayé une paire d'heure... en vain avec ce premier exemple j'ai peur de ne pas saisir

    En quoi je pourrais l'utiliser pour l'heure ? il me propose d'inclure et de l'interpréter avant de traiter le xml ? Parceque franchement c'est extrèmement pas clair...

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 34
    Points : 39
    Points
    39
    Par défaut
    Attention ce que tu dis est en partie faux.
    1) xslt 2.0 n'est pas encore une norme

    2)Il n'y pas de fonction current-time() en xslt 2.0
    J'ai bien conscience que XSLT 2 n'est pas encore une norme, mais comme j'avais besoin de quelques fonctionnalités qui ne sont disponibles que en XSLT 2 je travaille dès à présent avec (notamment pour pouvoir définir plusieurs fichiers de sortie). J'utilise Saxon 8.5, et j'ai bon espoir que la norme XSLT 2 qui va bien finir par sortir un jour ne soit pas trop éloignée du draft

    Concernant la fonction current-time je l'ai trouvée sur

    http://www.w3schools.com/xpath/xpath_functions.asp

    et elle fonctionne avec Saxon. Effectivement elle n'est peut-être pas recalculée au sein d'une même transformation XSLT, mais elle donne quand même l'heure à laquelle a lieu la transformation

    mais tu as raison, je ne devrais pas inciter les utilisateurs à utiliser la version 2 de XSLT qui n'est pas encore une norme (ou en tout cas je devrais les prévenir)

    Mais dans ce cas celà me semblait tellement plus simple !

  9. #9
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 16
    Points : 7
    Points
    7
    Par défaut
    Je ne suis pas sur de comprendre tout ;oD bref, cela ne me donne pas de réponse, ni même de piste de réponse...

    C'est étonnant que personne parmis les milliers d'utilisateur de ce forum n'est jamais une seule fois utilisé l'heure courante dans un de leur document xml xsl... ça me parrait même impossible, cela fait partie des fonctions ultra-basique non ?

    J'ai beau retourner le web en entier et faire appel sur tous les forums personne n'est capable de répondre à ma question... Je suis vraiment embêtté..

  10. #10
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 34
    Points : 39
    Points
    39
    Par défaut
    La solution que je propose, qui n'est pas encore une norme officielle comme la justement fait remarquer Erwy, consiste à utiliser un processeur XSLT 2.

    Mais tout dépend de ce que tu utilises pour effectuer ta transformation XSL !

    Il faut donc que tu nous précises ce que tu utilises

  11. #11
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 16
    Points : 7
    Points
    7
    Par défaut
    Je ne suis pas sur que ca soit la réponse attendu, mais j'utilise domxml dans php... Je ne sais ce qu'est un processeur et comment vérifier celui que j'ai !

  12. #12
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 34
    Points : 39
    Points
    39
    Par défaut
    Tu auras des infos sur cette page:

    http://classes.scriptsphp.net:81/source.XSLT

    et notamment :

    La transformation peut être effectuée de différentes manières : soit en utilisant les extensions que PHP fournit : php-XSLT ou php-DOMXML-XSLT, soit en ligne de commande avec SABLOTRON, XALAN ou XSLTPROC
    Il semble donc possible d'appeler le processeur XSLT de ton choix (par exemple SAXON) en PHP !

  13. #13
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 16
    Points : 7
    Points
    7
    Par défaut
    Je te remercie de te soucier de mon cas ;oD j'ai essayé donc ceci : Code PHP
    Code : 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
    <?php
     
    // L' extension que vous souhaitez utiliser
    $ext = 'domxml';
    //$ext = 'xslt';
    
    // Nouvelle Instance
    $xs = new xslt($ext);
    
    // On charge le fichier XML et la template XSLT
    $xs -> Load_XML_from_file('Conducteur/Conducteur_2005_07_28_001.xml');
    $xs -> Load_XSL_from_file('Conducteur/EnEcoute.xsl');
     
    // On ajoute un parametre $limit pour limiter l' affichage a 5 resultats
    // On le recuperera dans la template XSLT avec <xsl:param name="limit"/>
    $xs -> Add_XSL_parameter('heure', date('His'));
     
    // Affichage des resultats
    echo $xs -> Output();
     
    ?>
    Pour intégrer la variable heure actuelle, sur le papier c'est bien mais en réalité...
    Avec ça le code XSL
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <xsl:param name="heure"/>
     
    <xsl:template match="/">
     
    	<xsl:for-each select="Export/Event">
     
    		<xsl:choose>
    			<xsl:when test="normalize-space(Timing) &lt;= '$heure'">
    Qui me renvoi invariablement l'erreur suivante :
    Fatal error: Cannot instantiate non-existent class: xslt in /home/pharefm/www/Conducteur/EnEcoute.php on line 11
    Une idée ?

Discussions similaires

  1. Réponses: 4
    Dernier message: 23/09/2014, 09h56
  2. XML/XSLT/PHP et Variables
    Par squall52 dans le forum XML/XSL et SOAP
    Réponses: 3
    Dernier message: 16/03/2012, 21h06
  3. [XSLT][PHP] Transformation qui ne donne pas du xml conforme
    Par Floyd dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 15/06/2007, 15h11
  4. Réponses: 1
    Dernier message: 09/06/2006, 17h06
  5. Problème XML/XSLT/PHP
    Par Poseidon62 dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 12/04/2006, 17h32

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