<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

  <xsl:template match='results'>
    <xsl:copy>
      <xsl:for-each select='@*'>
        <xsl:copy/>
      </xsl:for-each>

      <xsl:attribute name='passed'>
        <xsl:value-of select="count(result[@result = 'passed'])"/> 
      </xsl:attribute>

      <xsl:attribute name='skipped'>
        <xsl:value-of select="count(result[@result = 'skipped'])"/> 
      </xsl:attribute>

      <xsl:attribute name='failed'>
        <xsl:value-of select="count(result[@result = 'failed'])"/> 
      </xsl:attribute>

      <xsl:apply-templates select="node()"/>

    </xsl:copy>
  </xsl:template>

  <xsl:template match="@*|node()">
    <xsl:copy>
      <xsl:apply-templates select="@*|node()"/>
    </xsl:copy>
  </xsl:template>

</xsl:stylesheet>

