xsl-list
[Top] [All Lists]

Re: [xsl] Re: loop through comma seperated values

2010-04-02 05:23:25
Dear Ken,Mike

Thanks a lot. I tried the same way as you guided. Its working fine.

Regards,
Ramesh

On Thu, Apr 1, 2010 at 7:39 PM, G. Ken Holman
<gkholman(_at_)cranesoftwrights(_dot_)com> wrote:
At 2010-04-01 19:33 +0400, you wrote:

My requirement is to frame a matrix.
<ColKey>2009,2010</ColKey>
<RowKey>JAN,FEB,MAR,APR,MAY,JUN,JUL,AUG,SEP,OCT,NOV,DEC,YTD</RowKey>

I thought to have two for loops using the above keys and identify
elements and to display data appropriately.

Fine.  Then nest into your stylesheet two instances of the approach I
described.  When you reach the "do-logic" portion for the years, do the
nested approach for the months.  When you reach the "do-logic" portion for
the months, display your information accordingly.  Name your templates
appropriately to avoid name collision.

You don't give any guidelines as to how you plan to display your data, but
if you track the year and month values and pass both of those down to the
"do-logic" portion for the months, you'll have what you need.

I hope this helps.

. . . . . . . . . . Ken

Regards,
Ramesh

On Thu, Apr 1, 2010 at 7:13 PM, G. Ken Holman
<gkholman(_at_)cranesoftwrights(_dot_)com> wrote:
Use a recursive function call with substring-before() and
substring-after(),
along the lines of (untested):

 <xsl:template name="loop-commas">
  <xsl:param name="value"/>
  <xsl:choose>
   <xsl:when test="contains($value,',')">
    <xsl:call-template name="do-logic">
      <xsl:with-param name="this"
select="substring-before($value,',')"/>
    </xsl:call-template>
    <xsl:call-template name="loop-commas">
      <xsl:with-param name="value"
select="substring-after($value,',')"/>
    </xsl:call-template>
   </xsl:when>
   <xsl:otherwise>
    <xsl:call-template name="do-logic">
      <xsl:with-param name="this" select="$value"/>
    </xsl:call-template>
   </xsl:otherwise>
  </xsl:choose>
 </xsl:template>

I hope this helps.

. . . . . . . Ken

At 2010-04-01 19:08 +0400, Ramesh Kumar wrote:

I am using XSLT 1.0

On Thu, Apr 1, 2010 at 7:06 PM, Ramesh Kumar 
<cnrameshkumar(_at_)gmail(_dot_)com>
wrote:
Dear All,

I have XML document with an element having comma seperated values as
below
<RowKey>JAN,FEB,MAR,APR,MAY,JUN,JUL,AUG,SEP,OCT,NOV,DEC,YTD</RowKey>

I need to loop through the values. I tried to replace the comma","
with "><" and used the variable in For each as below.
<xsl:for-each select="msxsl:node-set($ColHead)">
       <xsl:value-of select="."/>
</xsl:for-each>
Note: $ColHead contains the comma seperated values.


But no luck. Any help ?


--
XSLT/XQuery training:         San Carlos, California 2010-04-26/30
Principles of XSLT for XQuery Writers: San Francisco,CA 2010-05-03
XSLT/XQuery training:                 Ottawa, Canada 2010-05-10/14
XSLT/XQuery/UBL/Code List training: Trondheim,Norway 2010-06-02/11
Vote for your XML training:   http://www.CraneSoftwrights.com/s/i/
Crane Softwrights Ltd.          http://www.CraneSoftwrights.com/s/
G. Ken Holman                 mailto:gkholman(_at_)CraneSoftwrights(_dot_)com
Male Cancer Awareness Nov'07  http://www.CraneSoftwrights.com/s/bc
Legal business disclaimers:  http://www.CraneSoftwrights.com/legal


--~------------------------------------------------------------------
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>
--~--





-- 


Regards,
Ramesh

--~------------------------------------------------------------------
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>