| Subject: RE: [xsl] Q - Parsing & Manipulating Strings from XSL From: "Michael Kay" <mike@xxxxxxxxxxxx> Date: Sun, 29 May 2005 15:19:05 +0100 | 
>  A soap response contains a complex hierarchy of data, in which, if
> the departure time is 00:45 hours then it is represented as 45 ! To
> make matters worse, the schema defines it as a string. I have no
> influence over the schema since I'm querying a webservice. So I need
> to pad that 45 with 0s and of course add that colon. Is there a way I
> can do that in XSL ?
Of course, but first one needs to know how other times are represented. Is
01:30 represented as "01:30", as "0130", as "90", or in some other way? And
is 00:05 represented as "5" or as "05"?
>  
>  Furthermore, in the same repsonse, I have a string of the format
> YYYYNYY [chars may be either Y or N], also respresented as a free
> format string. This represents the days of the week starting from
> Sunday...  Now I need to take each char, and replace it with a <TD
> color="green">S</TD> if it is Y, and <TD>S</TD> if it is N.
>  
>  Anyway I can do that in XSL ?
>  
Sure. In XSLT 2.0 do
<xsl:for-each select="1 to 7">
  <TD>
    <xsl:if test="substring($in, ., 1) = 'Y'">
      <xsl:attribute name="color">green</xsl:attribute>
    </xsl:if>
    <xsl:text>S</xsl:text>
  </TD>
</xsl:if>
In 1.0 the simplest solution is probably simply to unfold the loop, i.e.
repeat the content of the above for-each loop seven times changing the
second argument of substring() each time.
Michael Kay
http://www.saxonica.com/
| Current Thread | 
|---|
| 
 | 
| <- Previous | Index | Next -> | 
|---|---|---|
| [xsl] Q - Parsing & Manipulating St, Ahsan Ali | Thread | Re: [xsl] Q - Parsing & Manipulatin, Ahsan Ali | 
| RE: [xsl] Cannot spot the error in , Frequent Fliers | Date | Re: [xsl] Cannot spot the error in , Bruce D'Arcus | 
| Month |