|
Subject: Re: [xsl] getting the node position in source xml in a variable From: Jeni Tennison <jeni@xxxxxxxxxxxxxxxx> Date: Wed, 27 Feb 2002 11:36:56 +0000 |
Hi Gurvinder,
> I have a template which takes two node-sets as parameters. I loop
> thru one of these nodeset using for-each and output the node value
> along with the corresponding node in the second node-list. Now the
> problem is that it works fine if i dont have a sort but with sort
> only the first node list is sorted. So it takes the wrong
> corresponding values from the second node-list. because the position
> gives the position in the context. So i should use <xsl:number> but
> when i put the xsl:number in the variable it always gives 1. even
> the position() if inside <xsl:variable> gives always 1, but if used
> in select attribute of <xsl:variable> it works fine
I think that the problem is that when you turn a result tree fragment
into a node set (as you're doing with the msxsl:node-set() extension
function), you get back a node set containing a single root node. In
your template, you seem to be imagining that you're getting back the
children of this root node (the elements or whatever).
Try this slightly amended version:
<xsl:template name="lookup">
<xsl:param name="name"/>
<xsl:param name="datanodes"/>
<xsl:param name="displaynodes"/>
<select name="{$name}">
<xsl:for-each select="msxsl:node-set($displaynodes)/node()">
<xsl:sort select="." />
<xsl:variable name="num"
select="count(preceding-sibling::node()) + 1"/>
<xsl:variable name="data"
select="msxsl:node-set($datanodes)/node()[$num]" />
<option id="{$data}" value="{$data}">
<xsl:value-of select="$data"/>-<xsl:value-of select="."/>
</option>
</xsl:for-each>
</select>
</xsl:template>
I'd normally question the wisdom of passing in result tree fragments
as the values of the $datanodes and $displaynodes parameters, but
since you need to have control over their ordering, and the nodes need
to be siblings to get the numbering to work, it's probably a good
idea.
Cheers,
Jeni
---
Jeni Tennison
http://www.jenitennison.com/
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| [xsl] getting the node position in , Gurvinder Singh | Thread | RE: [xsl] getting the node position, Gurvinder Singh |
| [xsl] <br/> in FO?, Gustaf Liljegren | Date | [xsl] XSLQUERRY, XSL Developer |
| Month |