XML Editor
Sign up for a WebBoard account Sign Up Keyword Search Search More Options... Options
Chat Rooms Chat Help Help News News Log in to WebBoard Log in Not Logged in
Show tree view Topic
Topic Page 1 2 3 4 5 6 7 8 9 Go to previous topicPrev TopicGo to next topicNext Topic
Postnext
John HayesSubject: XSL Date formatting
Author: John Hayes
Date: 01 Nov 2007 11:46 AM
Hi All

Can anyone help me with this please?

I have a date in an XML tag like this <InvoiceDate>2007-10-31</InvoiceDate> and I need to render this in HTML in a standard european way either 31-10-2007 or better 31 Oct 2007.

I have tried this template but get only "--" rendered.

<xsl:template match="a:InvoiceDate">
<xsl:variable name="date" select="a:InvoiceDate"/>
<xsl:value-of select="concat(substring-after(substring-after($date,'-'),'-'), '-',
substring('JanFebMarAprMayJunJulAugSebOctNovDec',
substring-before(substring-after($date,'-'),'-')*3-2,3), '-',
substring-before($date,'-'))"/>
</xsl:template>

Any and all ideas appreciated.

John

Postnext
Minollo I.Subject: XSL Date formatting
Author: Minollo I.
Date: 01 Nov 2007 11:55 AM
Originally Posted: 01 Nov 2007 11:54 AM
I think your code works more or less fine; the problem seems to be with selecting the starting value; try using:

<xsl:variable name="date" select="."/>

Postnext
James DurningSubject: XSL Date formatting
Author: James Durning
Date: 01 Nov 2007 12:02 PM
Your problem is here:
<xsl:variable name="date" select="a:InvoiceDate"/>

You're already in the a:InvoiceDate node, so this looks for a nested InvoiceDate child! Common mistake. You'd want:
<xsl:variable name="date" select="."/>
but even this is unnecessary.

Also, I'd put the string in a seperate variable:
<xsl:variable name="months" select="'JanFebMarAprMayJunJulAugSepOctNovDec'"/>

Generally, I'd also use substring, instead of substring-after , but this only works if your dates come in 01 format.
year: substring(.,1,4)
month: substring(.,6,2)
day: substring(.,9,2)

Final:
<xsl:value-of select="concat(substring(.,9,2), ' ', substring($months,(substring(.,6,2)*3)-2,3),' ', substring(.,1,4)"/>

Posttop
John HayesSubject: XSL Date formatting
Author: John Hayes
Date: 01 Nov 2007 12:20 PM
Thanks guys works a treat :}

 
Topic Page 1 2 3 4 5 6 7 8 9 Go to previous topicPrev TopicGo to next topicNext Topic
Download A Free Trial of Stylus Studio 6 XML Professional Edition Today! Powered by Stylus Studio, the world's leading XML IDE for XML, XSLT, XQuery, XML Schema, DTD, XPath, WSDL, XHTML, SQL/XML, and XML Mapping!  
go

Log In Options

Site Map | Privacy Policy | Terms of Use | Trademarks
Stylus Scoop XML Newsletter:
W3C Member
Stylus Studio® and DataDirect XQuery ™are from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2016 All Rights Reserved.