Subject: Re: [xsl] Question about position() From: "David Carlisle d.p.carlisle@xxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> Date: Tue, 14 May 2024 15:44:37 -0000 |
$features[1] means (more or less) $features[position()=1] and so selects the first tem $features[position()] means (more or less) $features[position()=position()] and so selects the full sequence as the filter is alway true. David On Tue, 14 May 2024 at 16:32, rick@xxxxxxxxxxxxxx < xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> wrote: > Hi All, > > > > I am creating sorted variable in order to use as a lookup later. Later, I > want to loop through the nodes and return its code attribute value one at a > time. When I use the position() function as a predicate, it returns all of > the attributes instead of the one at that position. If I put a hard-coded > number in as the predicate, it returns a single value, which is what I > expect. I am missing something fundamental here. Thank you for the help. > > > > <?xml version="1.0" encoding="UTF-8"?> > > <root> > > <features> > > <feature code="5521" text="Cryopreserved"/> > > <feature code="6751" text="Assigned HCPCS code"/> > > <feature code="5551" text="Shelf life greater than 2 years"/> > > <list count="3"/> > > </features> > > </root> > > > > <?xml version="1.0" encoding="UTF-8"?> > > <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" > > xmlns:xs="http://www.w3.org/2001/XMLSchema" > > xmlns:math="http://www.w3.org/2005/xpath-functions/math" > > exclude-result-prefixes="xs math" > > version="3.0" expand-text="yes"> > > > > <xsl:output indent="yes"/> > > > > <xsl:template match="/root"> > > <xsl:variable name="features" as="node()*"> > > <xsl:perform-sort select="features/feature"> > > <xsl:sort select="@text"/> > > </xsl:perform-sort> > > </xsl:variable> > > <xsl:for-each select="1 to count($features)"> > > <xsl:message>{position()}</xsl:message> > > <!-- Why does this return all three... --> > > <xsl:message>{$features[position()]/@code}</xsl:message> > > <!-- while this one returns one? --> > > <xsl:message>{$features[1]/@code}</xsl:message> > > </xsl:for-each> > > </xsl:template> > > > > </xsl:stylesheet> > > > > Thank you! > > Rick > XSL-List info and archive <http://www.mulberrytech.com/xsl/xsl-list> > EasyUnsubscribe <http://lists.mulberrytech.com/unsub/xsl-list/2739265> (by > email <>)
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] Question about position(), rick@xxxxxxxxxxxxxx | Thread | Re: [xsl] Question about position(), Michael Kay mike@xxx |
[xsl] Question about position(), rick@xxxxxxxxxxxxxx | Date | Re: [xsl] Question about position(), Michael Kay mike@xxx |
Month |