github.com/matislovas/ratago@v0.0.0-20240408115641-cc0857415a7a/xslt/testdata/general/bug-98.xsl (about)

     1  <?xml version="1.0"?>
     2  <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
     3    <xsl:output method="xml" indent="yes"/>
     4    <xsl:template match="/">
     5      <result>
     6        <xsl:apply-templates/>
     7      </result>
     8    </xsl:template>
     9    <xsl:key name="k1" match="entry" use="@cat1"/>
    10    <xsl:key name="k2" match="entry" use="@cat2"/>
    11    <xsl:template match="list">
    12      <xsl:variable name="k">
    13        <xsl:choose>
    14          <xsl:when test="@type='one'">k1</xsl:when>
    15          <xsl:otherwise>k2</xsl:otherwise>
    16        </xsl:choose>
    17      </xsl:variable>
    18      <total>
    19        <type>
    20          <xsl:value-of select="@type"/>
    21        </type>
    22        <a>
    23          <xsl:value-of select="sum( key($k,'a')/@qty )"/>
    24        </a>
    25        <b>
    26          <xsl:value-of select="sum( key($k,'b')/@qty )"/>
    27        </b>
    28      </total>
    29    </xsl:template>
    30    <xsl:template match="entries"/>
    31  </xsl:stylesheet>