| 
 
Subject: RE: [xsl] xsl:param xsl:copy-of From: Jarno.Elovirta@xxxxxxxxx Date: Tue, 15 Apr 2003 10:36:38 +0300  | 
Hi,
> If I have a structure like - 
> 
> <xxx>
> <a>
> <b>
> <c>
> </xxx>
> 
> in a vairiable X1 can I do the follwing -
> 
> <xsl:call-template>
> <xsl:with-param name="X1" select="$X1(not(position() =
> 1))" />
> </xsl:call-template>
> 
> to get -
> 
> <xxx>
> <b>
> <c>
> </xxx>
> 
> for the next iteration?
Unless you use exslt:node-set or XSLT 1.1/2.0, you can't modify the node-set. You should consider passing the node-set $X1 as such, and have another parameter to define the index of the containing element to be processed, i.e.
<xsl:template name="foo">
  <xsl:param name="X1" select="/.." />
  <xsl:param name="index" select="1" />
  <xsl:if test="$i <= count($X1/*)">
    <xsl:for-each select="$X1/*[position() = $index]">
      ...
    </xsl:for-each>
    <xsl:call-template name="foo">
      <xsl:with-param name="X1" select="$X1" />
      <xsl:with-param name="index" select="$index + 1" />
    </xsl:call-template>
  </xsl:if>
</xsl:template>
Or you can pass
  <a />
  <b />
  <c />
(no wrapper element) and when recursing, pass if forwars with select="$X1[not(position() = 1)]". Did that make any sense to you?
Cheers,
Jarno - VNV Nation: Fallout
 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
| Current Thread | 
|---|
  | 
| <- Previous | Index | Next -> | 
|---|---|---|
| Re: [xsl] xsl:param xsl:copy-of, David Carlisle | Thread | Re: [xsl] xsl:param xsl:copy-of, Mulberry Technologie | 
| [xsl] xsl:param xsl:copy-of, Leena Kulkarni | Date | RE: [xsl] why doesn't 'self::NODE' , Michael Kay | 
| Month |