Re: [xsl] accessing last element of node set passed as parameter

Subject: Re: [xsl] accessing last element of node set passed as parameter
From: Joerg Heinicke <joerg.heinicke@xxxxxx>
Date: Tue, 21 May 2002 21:15:11 +0200
Hello Paul,

you're again creating a RTF and must convert it to a node-set. Either in your "A" template or by changing the apply-templates again:

<xsl:variable name="tmp">
  <xsl:copy-of select="$result"/>
  <BAR i="{$i}"/>
</xsl:variable>
<xsl:apply-templates select="following-sibling::*[1]">
  <xsl:with-param name="result" select="xalan:nodeset($tmp)"/>
</xsl:apply-templates>

Regards,

Joerg

paul morgan schrieb:
Thanks David! Some of this is starting to click ... but then again something happens that shuts the clicker down.

Since order is important to me, I decided to heed your warning about the ordering of a union being implementation dependent, so I set about making all of the "BAR" elements be siblings of one another. I replaced:

<xsl:apply-templates select="following-sibling::*[1]">
<xsl:with-param name="result" select="$result|xalan:nodeset($new)"/>
</xsl:apply-templates> </xsl:template>


with:

<xsl:apply-templates select="following-sibling::*[1]">
<xsl:with-param name="result">
<xsl:copy-of select="$result"/>
<BAR i="{$i}"/>
</xsl:with-param>
</xsl:apply-templates> </xsl:template>


but now I get the following error message:

Can not convert #RTREEFRAG to a NodeList!

at the line:

<xsl:copy-of select="($result/BAR)[last()]" />

the first time the "A" template is matched with a non-empty value for "result". Shouldn't "result" be a node set?

Paul (I think this language is going to make my head explode)


XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list


Current Thread