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 :

Test de date de fichier


Sujet :

XSL/XSLT/XPATH XML

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    207
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 207
    Par défaut Test de date de fichier
    Bonjour,

    j'ai un XML
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <?xml version="1.0"?>
    -<list>\\nomade\Filtre_pdf<file date="2013/08/19 17:23:37" size="164189">filtre_pdf.xml</file></list>
    je voudrais via une feuille xsl, verifier si le fichier à moins de 12 heure
    et si il n'est pas 0ko

    si il a moins de 12h je fais un XML avec un attribut OK
    et si il a plus de 12h NOK

    pareil si il est à 0

    merci de votre aide

  2. #2
    Modérateur

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 577
    Par défaut
    Pour la taille ce n'est rien.
    Mais pour les calculs de date il faut XSLT 2.0 ou un moteur qui gère EXSLT. En XSLT 1.0 c'est juste pas envisageable.

    Si tu peux utiliser un moteur XSLT 2.0, eh bien, ma foi, c'est faisable, mais un peu chiant parce que la date n'est pas au bon format.
    On va commencer par la taille : qu'as-tu essayé pour l'instant ? Où en es-tu ? Montre-nous l'avancée de ton travail.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    207
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 207
    Par défaut
    j'étais en xsl 1.0 donc j'ai rajouté un script java

    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
     
    <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:msxsl="urn:schemas-microsoft-com:xslt" xmlns:xchngr="image-etc.com/Exchanger" version="1.0">
    	<xsl:output method="xml" version="1.0" encoding="windows-1252"/>
    	<msxsl:script language="JScript" implements-prefix="xchngr">
    		<![CDATA[
    			function date()
    			{
     
    		var myDate  = new Date();
     
    		return(myDate.getDate() + "/" + (myDate.getMonth()+1)  + "/" + myDate.getYear() + " " +  myDate.getHours() + ":" + myDate.getMinutes() + ":" + myDate.getSeconds() + 
     ":" + myDate.getMilliseconds());
     
    			}
     
    function date_fichier(strin)
    		{
     
    		var myDate  = new Date(strin.substr(0,4), strin.substr(5,2), strin.substr(8,2), strin.substr(11,2), strin.substr(14,2), strin.substr(17,2))
    		return(myDate.getDate() + "/" + myDate.getMonth() + "/" + myDate.getYear() + " " +  myDate.getHours() + ":" + myDate.getMinutes() + ":" + myDate.getSeconds() + 
     ":" + myDate.getMilliseconds());
     
     
    		}
     
     
     
    function diffdate(strin,u)
    {
    	var d1 = new Date();
    	d1.setMonth(d1.getMonth()+1);
    	var d2 = new Date(strin.substr(0,4), strin.substr(5,2), strin.substr(8,2), strin.substr(11,2), strin.substr(14,2), strin.substr(17,2));
    		var div=1;
    	switch(u){
    		case 's':
    			div=1000;
    			break;
    		case 'm':
    			div=1000*60;
    			break;
    		case 'h':
    			div=1000*60*60;
    			break;
    		case 'd':
    			div=1000*60*60*24;
    			break;
    	}
     
    	var Diff = d1.getTime() - d2.getTime();
    //test si le fichier date de moins de 12 heures
    	if( Math.ceil(Diff/div)<12)
    {
    return('OK');
     
    }
     
    else
     
    {
    return('NOK');
    }
    ;
    }
     
     
     
     
    		]]>
    	</msxsl:script>
    	<xsl:param name="xchngr:ref"/>
    	<xsl:template match="/">
    		<xsl:element name="Rapport_test_fichier">
    			<!--<xsl:variable name="compteur" select="count(document('C:\temp\New_export\conf\temp\liste_pdf1.xml')//Rapport_liste_pdf/LISTES/PDF[string(.)='NOK'])"></xsl:variable>-->
    			<!--<xsl:value-of select="xchngr:compter(document('C:\temp\New_export\conf\temp\liste_pdf1.xml')//Rapport_liste_pdf/@COMPTEUR/text())"/>-->
    			<xsl:variable name="date_jour" select="xchngr:date()"></xsl:variable>
    			<xsl:element name="Fichier">
    				<xsl:for-each select="//file">
    					<xsl:attribute name="date_fichier"><xsl:value-of select="xchngr:date_fichier(string(@date))"/></xsl:attribute>
    					<xsl:attribute name="taille_fichier"><xsl:value-of select="string(@size)"/></xsl:attribute>
    					<xsl:attribute name="nom_fichier"><xsl:value-of select="concat(/list/text(),'\',/list/file/text())"/></xsl:attribute>
    					<!-- test si le fichier Ã* moins de 12heures si oui OK si non NOK -->
    					<xsl:attribute name="test_date_valide"><xsl:value-of select="xchngr:diffdate(string(@date),'h')"/></xsl:attribute>
    					<!--<xsl:element name="PDF">
     
    						<xsl:attribute name="NOM"><xsl:value-of select="@NOM"/></xsl:attribute>
    						<xsl:choose>
    							<xsl:when test="document('C:\temp\New_export\conf\temp\liste_pdf.xml')//file[contains(text(),concat($page,'.PDF'))]">OK</xsl:when>
    							<xsl:when test="document('C:\temp\New_export\conf\temp\liste_pdf.xml')//file[contains(text(),concat($page,'.pdf'))]">OK</xsl:when>
    							<xsl:otherwise>NOK</xsl:otherwise>
    						</xsl:choose>
    					</xsl:element>-->
    				</xsl:for-each>
    			</xsl:element>
    			<xsl:element name="Date_heure_local">
    				<xsl:value-of select="$date_jour"/>
    			</xsl:element>
    		</xsl:element>
    	</xsl:template>
    </xsl:stylesheet>
    resultat

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     
    <?xml version="1.0" encoding="WINDOWS-1252"?>
    -<Rapport_test_fichier><Fichier test_date_valide="OK" nom_fichier="\\nomade\Filtre_pdf\filtre_pdf.xml" taille_fichier="157017" date_fichier="23/8/2013 17:24:50:0"/><Date_heure_local>23/8/2013 18:0:34:806</Date_heure_local></Rapport_test_fichier>

  4. #4
    Modérateur

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 577
    Par défaut
    Cela ne marche qu'avec MSXSL, c'est un peu le problème avec les scripts.

    Mais, good job
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

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

Discussions similaires

  1. [Dates] Test existence d'un fichier sur le web
    Par sara21 dans le forum Langage
    Réponses: 3
    Dernier message: 01/02/2008, 16h33
  2. [VB] Test d'ouverture de fichier (permissions)
    Par mister3957 dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 23/01/2006, 11h54
  3. probleme test presence d'un fichier(avec fso)
    Par pagez dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 30/08/2005, 15h24
  4. [MFC] recupération date modif fichier
    Par Gothico dans le forum MFC
    Réponses: 7
    Dernier message: 21/01/2005, 18h47
  5. [C++ .NET] Test existence d'un fichier
    Par remixxl dans le forum VC++ .NET
    Réponses: 3
    Dernier message: 26/07/2004, 19h21

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