1 <?xml version="1.0"?>
   2 <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
   3 <xsl:output method="text" omit-xml-declaration="yes"/>
   4 
   5 <xsl:template match="/">
   6 Coding Style Check Results
   7 --------------------------
   8 Total files checked: <xsl:number level="any" value="count(descendant::file)"/>
   9   Files with errors: <xsl:number level="any" value="count(descendant::file[error])"/>
  10        Total errors: <xsl:number level="any" value="count(descendant::error)"/>
  11     Errors per file: <xsl:number level="any" value="count(descendant::error) div count(descendant::file)"/>
  12 <xsl:apply-templates/>
  13 </xsl:template>
  14 
  15 <xsl:template match="file[error]">
  16 <xsl:apply-templates select="error"/>
  17 </xsl:template>
  18 
  19 <xsl:template match="error">
  20 <xsl:value-of select="../@name"/>:<xsl:value-of select="@line"/><xsl:text>: </xsl:text><xsl:value-of select="@message"/><xsl:text>
  21 </xsl:text>
  22 </xsl:template>
  23 
  24 </xsl:stylesheet>