Sort using @*

webmasterbeta

New Member
Can someone tell me why this doesn't work:


<xsl:param name="sort" select="'@type'" />

<xsl:apply-templates
select="$structure//item" mode="edit-news-item-index">
<xsl:sort
select="@*[name() = $sort]" order="ascending" />
</xsl:apply-templates>


but this does:


<xsl:param name="sort" select="'headline'" />

<xsl:apply-templates
select="$structure//item" mode="edit-news-item-index">
<xsl:sort
select="*[name() = $sort]" order="ascending" />
</xsl:apply-templates>


The value of $sort is changed dynamically depending on what attribute (first example) or element (second example) I need to sort by. Ideally I would like to be able to use this:


<xsl:param name="sort" select="'headline'" />

<xsl:apply-templates
select="$structure//item" mode="edit-news-item-index">
<xsl:sort
select="*[name() = $sort] | @*[name() = $sort]" order="ascending" />
</xsl:apply-templates>
 
Back
Top