Hello, ca fait deux heure que je tourne pour arriver à trouver le namespace approprié pour utiliser cette fonction xslt 2.0 mais en vain.
Pour faire cours, je lis deux dates dans un fichier xml, je calcule la différence qui est de type xs:dayTimeDuration et j'aimerais formater cette durée.
voici le super fichier xml
et le fichier xsd avec pas mal de namespace testé, sans arriver à mes fins : sortir un truc du genre 5 Jours 0 Heures 3 Min ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 <root> <date BeginDate="2011-05-03T15:52:43.577+02:00" EndDate="2011-05-03T15:59:52.173+02:00">2008-06-15T12:00:00Z</date> </root>
merci d'avance pour le coup de pouce, j'ai beau éplucher google, le vent ne tourne pas :s
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 xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xdt="http://www.w3.org/2005/02/xpath-datatypes" xmlns:functx="http://www.functx.com"> <xsl:output method="text"/> <xsl:template match="root"> <xsl:apply-templates select="date"/> </xsl:template> <xsl:template match="date"> <xsl:text>The difference between </xsl:text> <xsl:value-of select="./@BeginDate"/> <xsl:text> and </xsl:text> <xsl:value-of select="./@EndDate"/> <xsl:text> is </xsl:text> <!-- <xsl:value-of select="xs:dateTime(./@EndDate) - xs:dateTime(./@BeginDate)"/>--> <xs:dayTimeDuration id="dtdObject" select="PT24H"/> <xsl:variable name="diff" select="xs:dateTime(./@EndDate) - xs:dateTime(./@BeginDate)" as="xs:dayTimeDuration"/> <xsl:value-of select="$diff"/> <xsl:value-of select="total-days-from-duration($diff)"/> d <!--<xsl:value-of select="functx:total-days-from-duration(xs:dayTimeDuration('PT24H'))"/>--> <!--<xsl:text> </xsl:text>--> </xsl:template> </xsl:stylesheet>
Partager