Subject: [xsl] How to define a xsl:sort's order attribute using a variable From: Mike McGraw <mmcgraw@xxxxxxx> Date: Wed, 27 Jun 2001 13:31:09 -0400 |
I want to sort a list of <person> elements, and define the "select" and "order" attributes of the xsl:sort element using variables, rather than hardcoded values. xml source: <personlist sortBy="name" sortOrder="descending"> <person> <name>Bob</name> <age>40</age> </person> <person> <name>Mary</name> <age>53</age> </person> <person> <name>Arthur</name> <age>22</age> </person> </personlist> Here's an example of what I want to do. Iterate through the list of <person> elements, and sort by the element whose names matches personlist/@sortBy, in the order defined by personlist/@sortOrder: <xsl:template match="personlist"> <xsl:variable name="sortBy"> <xsl:attribute name="value"> <xsl:value-of select="@sortBy"> </xsl:attribute> </xsl:variable> <xsl:variable name="sortOrder"> <xsl:attribute name="value"> <xsl:value-of select="@sortOrder"> </xsl:attribute> </xsl:variable> <xsl:for-each select="person/*[name()=$sortBy]"> <xsl:sort select="." order="$sortOrder"/> <p> <xsl:value-of select="../name"/>  <xsl:value-of select="../age"/> </p> </xsl:for-each> </xsl:template> .. This does not work. I cannot define the value of the order attribute using a variable. Is there any way I can do this? Mike XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
RE: [xsl] accessing contents from a, Michael Kay | Thread | RE: [xsl] How to define a xsl:sort', Michael Kay |
RE: [xsl] accessing contents from a, Michael Kay | Date | RE: [xsl] Passing Variables to XSL , Michael Kay |
Month |