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
Conferences Close Tree View
+ Stylus Studio Feature Requests (1192)
- Stylus Studio Technical Forum (14621)
-> - Stylus Studio - Registrar en o... (1)
-> + Stylus Studio - Registrar en o... (2)
-> + Can a pipeline send a file by ... (2)
-> + After Updateing WIN10 to WIN11... (12)
-> + Where do I add the custom java... (3)
-> + Where is the Diagram tab? (5)
-> + Applying XSLT to Word DOCX/XML (2)
-> - CSV conversion via ConvertToXM... (1)
-> + Text symbols in SS not same as... (4)
-> + Exposing xquery as webservice ... (6)
-> + Syntax Identifier (2)
-> + Saving a Converted XML as an X... (5)
-> + Output document cannot be pars... (4)
-> - Archiving output from conversi... (1)
-> + EDIFACT guideline from Stylus ... (3)
-> + CSV file putting all the data ... (5)
-> + Can't install Home version 64b... (5)
-> + presale - Can I covers this sc... (5)
-> + Problem with UNB (5)
-> + Splitting EDIFACT files pipeli... (4)
-- [1-20] [21-40] [41-60] Next
+ Website Feedback (249)
+ XSLT Help and Discussion (7625)
+ XQuery Help and Discussion (2017)
+ Stylus Studio FAQs (159)
+ Stylus Studio Code Samples & Utilities (364)
+ Stylus Studio Announcements (113)
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
(Deleted User) Subject: EXSLT extensions in Stylusstudio
Author: (Deleted User)
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
(Deleted User) Subject: EXSLT extensions in Stylusstudio
Author: (Deleted User)
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

   
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.