Subject: RE: [xsl] Q - Parsing & Manipulating Strings from XSL From: "Michael Kay" <mike@xxxxxxxxxxxx> Date: Tue, 31 May 2005 08:39:48 +0100 |
Sorry, but you asked for an XQuery solution and I gave you one, then you asked for an XSLT translation and I gave you one. If you want to do it the hard way in XSLT 1.0 you're going to have to do it yourself. Michael Kay http://www.saxonica.com/ > -----Original Message----- > From: Ahsan Ali [mailto:doubleletter@xxxxxxxxx] > Sent: 31 May 2005 08:12 > To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx > Subject: Re: [xsl] Q - Parsing & Manipulating Strings from XSL > > What do you suggest for this then ?? Is there a way around in 1.0 ? I > don't mind if its complicated.. I must do it somehow... > > Thanks, > > Ahsan > > On 5/31/05, Michael Kay <mike@xxxxxxxxxxxx> wrote: > > 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] Text to appear on each pa, omprakash . v | Date | RE: [xsl] problem with id() functio, Michael Kay |
Month |