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 :

[XSLT] recupération date peu classique


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Membre confirmé
    Avatar de Konrad Florczak
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    242
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 242
    Par défaut [XSLT] recupération date peu classique
    Bonjour,

    Je susi devant un output RAW de LDAP et j'ai une balise date un peu chiante. En effet j'ai du :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <whenCreated>1/13/2009 8:48:18 AM</whenCreated>
    donc les concat(substring(whencreated, 1,2)... ne peuvent marcher pour les jours qui peuvent etre décallés.

    Comment je pourrais lui dire :

    Si tu rencontres deux caractères avant le premier '/' alors
    concat(substring(whencreated, 1,2)...

    sinon
    concat(substring(whencreated, 1,1)...

    Je ne suis pas très à l'aise encore avec le language et vous connaissez peut être le problème.

    Merci en tout cas pour votre aide

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

    Informations forums :
    Inscription : Mai 2004
    Messages : 4 587
    Par défaut
    Bonjour,

    pour ce genre de traitement, il faut utiliser les fonctions XPath substring-before() et substring-after().
    FAQ XML
    ------------
    « Le moyen le plus sûr de cacher aux autres les limites de son savoir est de ne jamais les dépasser »
    Giacomo Leopardi

  3. #3
    Membre confirmé
    Avatar de Konrad Florczak
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    242
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 242
    Par défaut
    je connais la syntaxe de substring before et after, mais comment lui faire differencier le premier '/' du dieuxieme '/' dans ?

  4. #4
    Membre expérimenté
    Profil pro
    Inscrit en
    Février 2009
    Messages
    155
    Détails du profil
    Informations personnelles :
    Localisation : France, Indre et Loire (Centre)

    Informations forums :
    Inscription : Février 2009
    Messages : 155
    Par défaut
    Je n'ai pas compris exactement ce que tu veux faire, mais si par exemple tu veux unifier le mois sur deux digits, tu peux écrire ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
    	<xsl:template match="whenCreated">
    		<xsl:choose>
    			<xsl:when test="substring(text(), 2, 1) = '/'"><xsl:value-of select="concat('0', text(), 1, 2)"/></xsl:when>
    			<xsl:otherwise><xsl:value-of select="text()"/></xsl:otherwise>
    		</xsl:choose>
    	</xsl:template>
    </xsl:stylesheet>

  5. #5
    Membre confirmé
    Avatar de Konrad Florczak
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    242
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 242
    Par défaut
    Ce que je veux faire :

    Input : 1/12/2009

    output 20091201

    Input : 12/4/2008

    output : 20080412

  6. #6
    Expert confirmé
    Avatar de GrandFather
    Inscrit en
    Mai 2004
    Messages
    4 587
    Détails du profil
    Informations personnelles :
    Âge : 55

    Informations forums :
    Inscription : Mai 2004
    Messages : 4 587
    Par défaut
    Citation Envoyé par Konrad Florczak Voir le message
    je connais la syntaxe de substring before et after, mais comment lui faire differencier le premier '/' du dieuxieme '/' dans ?
    En plusieurs phases :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <xsl:variable name="jour" select="substring-before(., '/')"/>
    <xsl:variable name="mois" select="substring-before(substring-after(., concat($jour, '/')), '/')" />
    <xsl:variable name="annee" select="substring-before(substring-after(., concat($jour, '/', $mois, '/')), ' ')" />
    <xsl:value-of select="$annee"/>
    <xsl:number value="$mois" format="01"/>
    <xsl:number value="$jour" format="01"/>
    FAQ XML
    ------------
    « Le moyen le plus sûr de cacher aux autres les limites de son savoir est de ne jamais les dépasser »
    Giacomo Leopardi

Discussions similaires

  1. [Batch] Recupérer une date peu importe l'OS
    Par bstevy dans le forum Scripts/Batch
    Réponses: 9
    Dernier message: 20/03/2015, 01h53
  2. XSLT Transformation Date Tricky !
    Par Konrad Florczak dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 01/06/2009, 18h34
  3. [XSLT]Recupérer une variable dans une adresse
    Par Freygolow dans le forum XSL/XSLT/XPATH
    Réponses: 5
    Dernier message: 07/11/2008, 23h11
  4. [XSLT]Tableau un peu particulier
    Par JohnBlatt dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 21/06/2006, 18h14
  5. [MFC] recupération date modif fichier
    Par Gothico dans le forum MFC
    Réponses: 7
    Dernier message: 21/01/2005, 18h47

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