OVH Cloud OVH Cloud

Formater une date par l'intermediare d'un xslt

2 réponses
Avatar
Daniel
Bonjour,

J'ai des données qui me sont renvoyé d'un DataSet vers un fichier xml. Que
je converti par l'intermédiaire d'un fichier xslt au format .xls. J'ai un
problème au niveau du format des dates, la base de donnée me renvoi la date
au format suivant : "2004-09-29T10:24:00.0000000+02:00" et moi j'ai besoin
de la faire apparaître dans mon fichier Excel de cette façon : 29/09/2004

Vous trouverez ci-dessous le code de mon xslt et je vous remercie par avance
des informations que vous pourrez m'apporter.

Cordiallement,

Daniel

<?xml version="1.0" encoding="UTF-8" ?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:ms="urn:schemas-microsoft-com:xslt"
>
<xsl:output method="html" />
<xsl:template match="/">
<TABLE>
<TR>
<TH>ID</TH>
<TH>Date Saisie</TH>
<TH>Site</TH>
<TH>Date Expédition</TH>
<TH>Ref. Expéditeur</TH>
<TH>Expéditeur</TH>
<TH>Objet</TH>
<TH>Transmis à</TH>
<TH>Type Reception</TH>
<TH>Fichier</TH>
</TR>
<xsl:apply-templates select="Ds_Chrono_Vis_Entrant/entrant">
<xsl:sort select="ID" order="ascending" />
</xsl:apply-templates>
</TABLE>
</xsl:template>

<xsl:template match="Ds_Chrono_Vis_Entrant/entrant">
<tr>
<td>
<xsl:value-of select="ID" />
</td>
<td>
<xsl:value-of select="Date" />
</td>
<td>
<xsl:value-of select="site" />
</td>
<td>
<xsl:value-of select="DateEx" />
</td>
<td>
<xsl:value-of select="RefEx" />
</td>
<td>
<xsl:value-of select="Expediteur" />
</td>
<td>
<xsl:value-of select="Objet" />
</td>
<td>
<xsl:value-of select="Transmisa" />
</td>
<td>
<xsl:value-of select="ModeExpedition" />
</td>
<td>
<xsl:value-of select="Fichier" />
</td>
</tr>
</xsl:template>
</xsl:stylesheet>

2 réponses

Avatar
Zazar
Bonjour,

J'ai des données qui me sont renvoyé d'un DataSet vers un fichier xml. Que
je converti par l'intermédiaire d'un fichier xslt au format .xls. J'ai un
problème au niveau du format des dates, la base de donnée me renvoi la


date
au format suivant : "2004-09-29T10:24:00.0000000+02:00" et moi j'ai besoin
de la faire apparaître dans mon fichier Excel de cette façon : 29/09/2004

Vous trouverez ci-dessous le code de mon xslt et je vous remercie par


avance
des informations que vous pourrez m'apporter.



Si vous voulez faire ça seulement avec le xslt, alors la question est un peu
HS.
Reposez là sur un forum discutant du xml ou de xslt, vous aurez plus de
chances d'obtenir une réponse.

--
Zazar
Avatar
Daniel
Bonjour,

N'ayant pas trouvé d'unformation, j'ai contournée le probléme en
convertissant le format de mes dates directement à la sortie de la base de
donnée.
Si besoin vous trouverez ci-dessous si vous en avez l'utilité le code de mon
comvert, plus les différents formatage possible.

CONVERT (CHAR(20),entrant.Date, 103) AS Date
Cette expression nous donne le format de date suivant : 09/10/2004

CONVERT ( type de données, expression, [ style_format ] )

Paramètres

type de données Type de données dans lequel l'expression est convertie.
expression Expression à convertir.
style_format L'argument style_format est un numéro de code de style qui
décrit le format de date à utiliser pour convertir des chaînes en dates ou
en heures et vice versa. Les valeurs de l'argument style_format ont les
significations suivantes :Sans siècle (aa) Avec siècle (aaaa) Résultat

Sans siècle (aa) Avec siècle (aaaa) Résultat
- 0 ou 100 mmm jj aaaa
hh:nn:ss:sss AM (ou PM)
1 101 mm/jj/aa[aa]
2 102 [aa]aa.mm.jj
3 103 jj/mm/aa[aa]
4 104 jj.mm.aa[aa]
5 105 jj-mm-aa[aa]
6 106 jj mmm aa[aa]
7 107 mmm jj, aa[aa]
8 108 hh:nn:ss
- 9 ou 109 mmm jj aaaa
hh:nn:ss:sssAM (ou PM)
10 110 mm-jj-aa[aa]
11 111 [aa]aa/mm/jj
12 112 [aa]aammjj
13 113 jj mmm aaa
hh:nn:ss:sss (format 24 heures, Europe + millisecondes, année à 4 chiffres)
14 114 hh:nn:ss:sss
(format 24 heures)
20 120 aaaa-mm-jj
hh:nn:ss:sss (format 24 heures, conforme ODBC, année sur 4 chiffres)
21 121 yyyy-mm-dd
hh:nn:ss.sss (format 24 heures, conforme ODBC avec millisecondes, année à 4
chiffres)

Si aucun argument style_format n'est fourni, le code de style 0 est utilisé.

Cordialement

Daniel
"Daniel" a écrit dans le message de news:

Bonjour,

J'ai des données qui me sont renvoyé d'un DataSet vers un fichier xml. Que
je converti par l'intermédiaire d'un fichier xslt au format .xls. J'ai un
problème au niveau du format des dates, la base de donnée me renvoi la


date
au format suivant : "2004-09-29T10:24:00.0000000+02:00" et moi j'ai besoin
de la faire apparaître dans mon fichier Excel de cette façon : 29/09/2004

Vous trouverez ci-dessous le code de mon xslt et je vous remercie par


avance
des informations que vous pourrez m'apporter.

Cordiallement,

Daniel

<?xml version="1.0" encoding="UTF-8" ?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:ms="urn:schemas-microsoft-com:xslt"
>
<xsl:output method="html" />
<xsl:template match="/">
<TABLE>
<TR>
<TH>ID</TH>
<TH>Date Saisie</TH>
<TH>Site</TH>
<TH>Date Expédition</TH>
<TH>Ref. Expéditeur</TH>
<TH>Expéditeur</TH>
<TH>Objet</TH>
<TH>Transmis à</TH>
<TH>Type Reception</TH>
<TH>Fichier</TH>
</TR>
<xsl:apply-templates select="Ds_Chrono_Vis_Entrant/entrant">
<xsl:sort select="ID" order="ascending" />
</xsl:apply-templates>
</TABLE>
</xsl:template>

<xsl:template match="Ds_Chrono_Vis_Entrant/entrant">
<tr>
<td>
<xsl:value-of select="ID" />
</td>
<td>
<xsl:value-of select="Date" />
</td>
<td>
<xsl:value-of select="site" />
</td>
<td>
<xsl:value-of select="DateEx" />
</td>
<td>
<xsl:value-of select="RefEx" />
</td>
<td>
<xsl:value-of select="Expediteur" />
</td>
<td>
<xsl:value-of select="Objet" />
</td>
<td>
<xsl:value-of select="Transmisa" />
</td>
<td>
<xsl:value-of select="ModeExpedition" />
</td>
<td>
<xsl:value-of select="Fichier" />
</td>
</tr>
</xsl:template>
</xsl:stylesheet>