Subject: RE: [xsl] Q - Parsing & Manipulating Strings from XSL From: "Michael Kay" <mike@xxxxxxxxxxxx> Date: Tue, 31 May 2005 08:00:02 +0100 |
These functions are present in XQuery 1.0 and in XSLT 2.0, but not in XSLT 1.0. Michael Kay http://www.saxonica.com/ > -----Original Message----- > From: Ahsan Ali [mailto:doubleletter@xxxxxxxxx] > Sent: 31 May 2005 07:29 > To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx > Subject: Re: [xsl] Q - Parsing & Manipulating Strings from XSL > > Allright. I converted the xquery code to the below xsl code: > > <xsl:template match="JrnyTm"> > <xsl:variable name="onemin" select=" > xdt:dayTimeDuration('PT1M')"/> > <xsl:variable name="time" select="xs:integer(.) > * $onemin"/> > <xsl:variable name="hours" > select="xs:hours-from-duration($time)"/> > <xsl:variable name="mins" > select="xs:minutes-from-duration($time)"/> > <xsl:value-of select="concat($hours, ' hrs', > $mins, ' mins')"/> > </xsl:template> > > Now the problem is that the xdt namespace is not recognised ! > > The namespace definition is: > xmlns:xs="http://www.w3.org/2001/XMLSchema" > xmlns:xdt="http://www.w3.org/2005/04/xpath-datatype" > > I get an error:"Namespace 'http://www.w3.org/2005/04/xpath-datatype' > does not contain any functions." > > I'm using the MSXML XSL processor... > > > Regards, Ahsan > > On 5/30/05, Michael Kay <mike@xxxxxxxxxxxx> wrote: > > > > > Is there way to do this in pure XSLT instead of Xquery ?? > > > > Of course. Just replace > > > > let $x := EXPR > > > > and > > > > declare variable $x := EXPR > > > > by > > > > <xsl:variable name="x" select="EXPR"/> > > > > and replace > > > > "return X" by > > > > <xsl:value-of select="X"/> > > > > Michael Kay > > http://www.saxonica.com/ > > > > > > > > > You've got a choice between using numeric arithmetic or > > > duration arithmetic. > > > > It's probably cleanest to use duration arithmetic though > > > it's a bit verbose. > > > > > > > > declare variable $one-minute := xdt:dayTimeDuration('PT1M') > > > > > > > > then > > > > > > > > let $time := xs:integer(JrnyTm) * $one-minute, > > > > $hours := hours-from-duration($time), > > > > $minutes := minutes-from-duration($time) > > > > return > > > > concat($hours, ' hrs ', $minutes, ' minutes ') > > > > > > > > > > Regards, Ahsan
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Q - Parsing & Manipulatin, Ahsan Ali | Thread | Re: [xsl] Q - Parsing & Manipulatin, Ahsan Ali |
RE: [xsl] template name in attribut, Jessica Spiteri | Date | Re: [xsl] Using xsl:for-each for ev, Ahsan Ali |
Month |