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
Manikandan SurendranathSubject: Formatting Date
Author: Manikandan Surendranath
Date: 11 May 2005 04:49 AM
Can someone tell me how date formating can be done, like I want to transform "1989-06-05" to "June 6, 1989". I would like to achieve this with our using any extentsion functions of java or msxsl. Since I have no idea which xml processor my client is going to use, I want to keep this processor independant.

Postnext
Ivan PedruzziSubject: Formatting Date
Author: Ivan Pedruzzi
Date: 11 May 2005 06:30 AM
Hi Manikandan,

Unfortunately XSLT 1.0 doesn't provide a built-in function for that, XSLT 2.0 does.

Still you could write your own "format-date" in pure XSLT.

Hope this helps.
Ivan

Postnext
Manikandan SurendranathSubject: Formatting Date
Author: Manikandan Surendranath
Date: 12 May 2005 05:51 AM
Thanks for the response. I have written a template that will format the date to the format I need. Can you just look at this and tell me if this is optimal solution or can it be better.

<xsl:template name="replace-string">
<xsl:param name="text"/>
<xsl:param name="replace"/>
<xsl:param name="with"/>
<xsl:choose>
<xsl:when test="contains($text,$replace)">
<xsl:value-of select="substring-before($text,$replace)"/>
<xsl:value-of select="$with"/>
<xsl:call-template name="replace-string">
<xsl:with-param name="text" select="substring-after($text,$replace)"/>
<xsl:with-param name="replace" select="$replace"/>
<xsl:with-param name="with" select="$with"/>
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$text"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>

<xsl:template name="format-date">
<xsl:param name="dateTime"/>
<xsl:if test="string-length(normalize-space($dateTime)) > 0" >
<xsl:variable name="space" select="' '"/>
<xsl:variable name="date">
<xsl:value-of select="substring-before($dateTime,'T')" />
</xsl:variable>
<xsl:variable name="year">
<xsl:value-of select="substring-before($date,'-')" />
</xsl:variable>
<xsl:variable name="temp">
<xsl:call-template name="replace-string">
<xsl:with-param name="text" select="substring-after($date,'-')"/>
<xsl:with-param name="replace" select="$year"/>
<!--<xsl:with-param name="with" select=""/>-->
</xsl:call-template>
</xsl:variable>
<xsl:variable name="day">
<xsl:value-of select="number(substring-after($temp,'-'))" />
</xsl:variable>
<xsl:variable name="month">
<xsl:value-of select="number(substring-before($temp,'-'))" />
</xsl:variable>

<xsl:choose>
<xsl:when test="$month = 1">January</xsl:when>
<xsl:when test="$month = 2">February</xsl:when>
<xsl:when test="$month = 3">March</xsl:when>
<xsl:when test="$month = 4">April</xsl:when>
<xsl:when test="$month = 5">May</xsl:when>
<xsl:when test="$month = 6">June</xsl:when>
<xsl:when test="$month = 7">July</xsl:when>
<xsl:when test="$month = 8">August</xsl:when>
<xsl:when test="$month = 9">September</xsl:when>
<xsl:when test="$month = 10">October</xsl:when>
<xsl:when test="$month = 11">November</xsl:when>
<xsl:when test="$month = 12">December</xsl:when>
</xsl:choose>
<xsl:value-of select="concat(' ',$day,', ',$year)" />
</xsl:if>
</xsl:template>

Postnext
Ivan PedruzziSubject: Formatting Date
Author: Ivan Pedruzzi
Date: 13 May 2005 02:03 AM


I would add a test in replace-string to avoid infinite recursion with an empty string

<xsl:when test="string-length($text) &gt; 0 and string-length($replace) &gt; 0 and contains($text,$replace)">

and change the variable assignements to use select attribute

<xsl:variable name="year" select="substring-before($date,'-')"/>

Hope this helps
Ivan Pedruzzi
Stylus Studio Team

Posttop
Christopher AtkinsSubject: Formatting Date
Author: Christopher Atkins
Date: 09 Jun 2005 03:57 PM
How would one go about using XSLT 2.0 within Stylus Studio XML Enterprise 6 Release 3? I'm mapping two XSDs and need to perform myriad date transformations. I'm evaluating this tool for a much larger effort.

 
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.