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 10 11 12 13 14 15 16 17 18 19 20 Go to previous topicPrev TopicGo to next topicNext Topic
Postnext
Mike HallSubject: EXSLT extensions in Stylusstudio
Author: Mike Hall
Date: 11 Dec 2007 12:21 PM
Hi,
I am trying to debeg my xslt, that uses EXSLT extensions. I am using EXSLT function, parse-date(). I have Stylusstudio 2008 Enterprise Edition and using XSLT processor Saxon 9.0.0.2.
I have added namespace like this

xmlns:edate="http://exslt.org/dates-and-times"
exclude-result-prefixes="edate"

and in the code using function like

<xsl:variable name="dateField" select="edate:parse-date(text(), 'M/d/yyyy hh:mm:ss tt')"/>

when I debug, I am getting this error,
Error: on line 229 of file:///c:/Mike/PROJEC~1/AETC/XML/TESTIN~3.XSL: Cannot find a matching 2-argument function named {http://exslt.org/dates-and-times}parse-date().

Please advise do I need to change anything in my setup,

Thanks
Mike Hall


DocumentTestingPIF_PIFDATE_XSLT.xslt
My XSLT file

DocumentTestingXML.xml
My XML file

Postnext
Alberto MassariSubject: EXSLT extensions in Stylusstudio
Author: Alberto Massari
Date: 11 Dec 2007 01:14 PM
Hi Mike,
Saxon doesn't support the parse-date() EXSLT function (see http://www.saxonica.com/documentation/extensions/exslt.html for the complete list of the supported ones). According to the official EXSLT web page [http://www.exslt.org/date/functions/parse-date/date.parse-date.html], there is no XSLT processor supporting it.
I fear you will have to write the parsing code for your specific format by using the string-before/string-after standard functions.

Alberto

Postnext
Mike HallSubject: EXSLT extensions in Stylusstudio
Author: Mike Hall
Date: 11 Dec 2007 04:24 PM
Originally Posted: 11 Dec 2007 02:22 PM
Thanks for your response,

Can you please suggest alternative to parse-date() function.

I have big xslt and need to debug what's happening inside. I can replace parse-date() with some other function and continue to debug. There are few parse-date() functions, I can replace them.

Please suggest alternate function or how can I do that,

Thanks
Mike

Posttop
Alberto MassariSubject: EXSLT extensions in Stylusstudio
Author: Alberto Massari
Date: 12 Dec 2007 03:13 AM
Hi Mike,
you can use a template like this:

<xsl:template name="parse-date">
<xsl:param name="date"/>
<xsl:variable name="month" select="substring-before($date, '/')"/>
<xsl:variable name="rest1" select="substring-after($date, '/')"/>
<xsl:variable name="day" select="substring-before($rest1, '/')"/>
<xsl:variable name="rest2" select="substring-after($rest1, '/')"/>
<xsl:variable name="year" select="substring-before($rest2, ' ')"/>
<xsl:variable name="rest3" select="substring-after($rest2, ' ')"/>
<xsl:variable name="hour" select="substring-before($rest3, ':')"/>
<xsl:variable name="rest4" select="substring-after($rest3, ':')"/>
<xsl:variable name="minute" select="substring-before($rest4, ':')"/>
<xsl:variable name="second" select="substring-after($rest4, ':')"/>
<xsl:value-of select="concat($year, '-', $month, '-', $day, 'T', $hour, ':', $minute, ':', $second)"/>
</xsl:template>

(you may want to add some code for error checking and day/month/hour/minute padding)

You can invoke it using

<xsl:call-template name="parse-date">
<xsl:with-param name="date" select="'12/12/2007 15:34:23'"/>
</xsl:call-template>


Hope this helps,
Alberto

 
Topic Page 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 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.