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 :

Ajouter une condition dans mon XML


Sujet :

XML/XSL et SOAP

  1. #1
    Membre à l'essai
    Inscrit en
    Janvier 2012
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Janvier 2012
    Messages : 16
    Points : 12
    Points
    12
    Par défaut Ajouter une condition dans mon XML
    Bonjour,

    Avant de commencer je tiens à préciser que je débute en XML/XSL.
    J'aimerais rajouter une condition dans mon xml qui vérifierait que l'heure actuelle est comprise entre 00h05m et 00h20 avant d'éxécuter la section <rollingPolicy>.

    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
    <appender name="fichierRotation" class="ch.qos.logback.core.rolling.RollingFileAppender">
     
            <file>${APPL_FULL_PATH}/logs/rotation.log</file>
     
            <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
    			<fileNamePattern>${APPL_FULL_PATH}/logs/rotation-%d{yyyy-MM-dd HH}.log</fileNamePattern>
            </rollingPolicy>
     
    		<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
    			<charset>UTF-8</charset>
    			<Pattern>%d{yyyy-MM-dd_HH:mm:ss.SSS} %-5level %logger{36} - %msg%n
    			</Pattern>
    		</encoder>
     
    		<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
    			<level>INFO</level>
    		</filter>
     
        </appender>
    J'ai cru lire que le seul moyen de faire ça serait de passer par du XSL avec cette condition:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <xsl:if test="number(hours-from-time(current-time()) = 0 and number(minutes-from-time(current-time()) &gt; * 5 and number(minutes-from-time(current-time()) &lt; * 20">
    ...
    </xsl:if>
    Mais bon je me doutais bien que ça n'allait pas marcher... Des idées ?

    Merci !

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Hello,

    Légère erreur de compréhension.

    XML lui-même n'a pas de notion de condition. Ce n'est pas un langage de programmation. (Et notamment dans ton fichier il n'y a aucune section à "exécuter". La rollingPolicy par exemple est une règle, une vérité générale intemporelle qui est connue à tout moment. C'est une loi qui dit que tous les X temps, on crée un nouveau fichier de logs au lieu de continuer dans l'ancien. La loi est toujours exécutée. Si tu veux une loi qui dit "sauf dans telles conditions" il faut faire une loi qui dit "sauf dans telles conditions", pas chercher à exécuter la loi ou pas.)

    XSLT, un format XML, a bien une notion de condition. Mais tu ne peux pas mettre du XSLT dans un fichier XML quelconque et penser que ça va marcher. XSLT est son propre format, il ne s'insère pas dans les autres formats. Ce serait comme mettre du code Python dans un fichier texte, et penser qu'en l'affichant dans le Notepad, le code Python sera exécuté au lieu d'être affiché. Non, pour exécuter du Python on le passe dans un interprète Python. Si on en met dans du texte, c'est juste du texte qui contient du code Python. Eh ben, XSLT pareil, pour exécuter du XSLT on le lance dans un moteur XSLT. Si on en met dans un fichier XML normal, c'est juste des balises que ce format XML ne connaît pas.

    Donc, l'idée n'est pas possible en général.

    Dans ta situation, il est facile de le gérer en Java à la place. Il suffit de créer ta propre classe au lieu de ch.qos.logback.core.rolling.TimeBasedRollingPolicy et de l'utiliser.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre à l'essai
    Inscrit en
    Janvier 2012
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Janvier 2012
    Messages : 16
    Points : 12
    Points
    12
    Par défaut
    Merci beaucoup pour tous ces détails très bien expliqués !

    Effectivement le premier truc que j'ai voulu faire a été de créer une classe Java pour remplacer celle existante. Le problème c'est que celle-ci contient trop d'éléments privés qui m'obligent à rapporter d'autres classes et ça devient vite une usine à gaz. Mais bon vu ce que tu viens de m'expliquer je ne vais pas avoir le choix...

    Encore un grand merci !
    Bonne journée

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

Discussions similaires

  1. Ajouter une condition dans une fonction
    Par le_dilem dans le forum Général Python
    Réponses: 3
    Dernier message: 13/03/2011, 13h43
  2. [XMLBEANS] Surfer et ajouter des noeuds dans mon XML
    Par akrogames dans le forum APIs
    Réponses: 0
    Dernier message: 05/12/2010, 17h16
  3. Ajouter une ligne dans un xml en Java
    Par cricri77200 dans le forum XML/XSL et SOAP
    Réponses: 0
    Dernier message: 01/06/2010, 14h27
  4. ajouter une condition dans une formule
    Par NEC14 dans le forum Excel
    Réponses: 9
    Dernier message: 14/10/2008, 14h51
  5. comment ajouter une image dans mon HTML??
    Par Mickey.jet dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 22/03/2006, 15h12

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