[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] RE: Choosing different sorts
Hi, > I had a look in the archives before posting, and am > not sure I understand the method which uses: > > <xsl:sort select="*[name(.) = $sortfield]"/> Expression *[name(.) = $sortfield] will return a node-set of elements whose name equal the string value of the variable sortfield. In xsl:sort the result is converted to a string, thus if the node-set contains more that one node, the string value of the first node in the set is used as the sort key. > I have tried, in my code to have: > > <xsl:for-each select="file"> > <xsl:choose> > <xsl:when test="$sort='design'"><xsl:sort > select="name"/></xsl:when> See the spec <http://www.w3.org/TR/xslt#element-sort>: "When used in xsl:for-each, xsl:sort elements must occur first." The way around this is e.g. <xsl:variable name="sortkey"> <xsl:choose> <xsl:when test="$sort='design'">name</xsl:when> <xsl:when test="$sort='stat'">status</xsl:when> <xsl:otherwise>id</xsl:otherwise> </xsl:choose> </xsl:variable> <xsl:for-each select="file"> <xsl:sort select="*[name() = $sortkey]"/> ... </xsl:for-each> Cheers, Jarno - VNV Nation: Electronaut
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|