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 |