xsl-list
[Top] [All Lists]

Re: Q - Parsing & Manipulating Strings from XSL

2005-05-31 00:42:09
Thank you for you time, Michael. Much appreciated !

Regards, Ahsan

On 5/31/05, Michael Kay <mike(_at_)saxonica(_dot_)com> wrote:
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(_at_)gmail(_dot_)com]
Sent: 31 May 2005 08:12
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
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(_at_)saxonica(_dot_)com> 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(_at_)gmail(_dot_)com]
Sent: 31 May 2005 07:29
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
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(_at_)saxonica(_dot_)com> 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



--~------------------------------------------------------------------
XSL-List info and archive:
http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail:
<mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--







--~------------------------------------------------------------------
XSL-List info and archive:
http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: 
<mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--




--~------------------------------------------------------------------
XSL-List info and archive:
http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: 
<mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--






--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: 
<mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--



--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: 
<mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--





--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: 
<mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--



--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--



<Prev in Thread] Current Thread [Next in Thread>