packages feed

hxt-7.1: examples/arrows/hparser/xslt/sorting.xsl

<?xml version="1.0" ?>
<?karl version="1.0" ?>
<!-- comment axg f -->
<xsl:transform version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

  <xsl:variable name="V" select="'ascending'"/>

  <xsl:template match="/">
    <result>
      Using for-each:
      <xsl:for-each select = "*/*">
        <xsl:sort select="name()" order="{document/@order}"/>
        <xsl:sort select="@nr" data-type="number"/>
        :<xsl:copy-of select="." />
      </xsl:for-each>
      Using apply-template
      <xsl:apply-templates select="*/*" mode="copy">
        <xsl:sort select="@nr" data-type="number" order="descending"/>
        <xsl:sort select="name()" order="{$V}"/>
        <xsl:with-param name="p" select="concat('value_',document/@order)"/>
      </xsl:apply-templates>
    </result>
  </xsl:template>

  <xsl:template match="*" mode="copy">
    <xsl:param name="p"/>
    Param p: <xsl:value-of select="$p"/>
    <xsl:copy-of select="."/>
  </xsl:template>


</xsl:transform>