diff options
Diffstat (limited to 'data/examples/rg-stats.xsl')
-rw-r--r-- | data/examples/rg-stats.xsl | 143 |
1 files changed, 143 insertions, 0 deletions
diff --git a/data/examples/rg-stats.xsl b/data/examples/rg-stats.xsl new file mode 100644 index 0000000..546e2c9 --- /dev/null +++ b/data/examples/rg-stats.xsl @@ -0,0 +1,143 @@ +<?xml version="1.0"?> +<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> +<xsl:output method="html"/> + +<!-- eek, can't get this working yet +<xsl:param name="name" select="no composition name"/> +--> + +<!-- XSLT for extracting some stats from an RG4 file + See rosegarden/scripts/produceRGStats.sh to turn your RG file + into XML that can be parsed with this stylesheet --> + +<xsl:template match="/"> +<html> + <head> + <title>Rosegarden File Summary</title> + </head> + <body> + + <xsl:apply-templates select="rosegarden-data/composition"/> + + <br/> + + <xsl:apply-templates select="rosegarden-data/segment"/> + + <br/> + + <xsl:apply-templates select="rosegarden-data/studio"/> + + </body> +</html> +</xsl:template> + +<!-- Composition --> + +<xsl:template match="composition"> + + <!-- get the filename from the parameter list --> + + <h1> + Rosegarden Composition <!-- ("<xsl:attribute select="$name"/>") --> + </h1> + + <p> + Copyright: <xsl:value-of select="@copyright"/> + </p> + + <h2> + Tracks + </h2> + + <ul> + <xsl:apply-templates select="track"/> + </ul> +</xsl:template> + +<xsl:template match="track"> + <li> + Track + <xsl:value-of select="@id"/> + <xsl:text> (</xsl:text> + <xsl:value-of select="@label"/> + <xsl:text>)</xsl:text> + </li> +</xsl:template> + + +<!-- Segment --> + +<xsl:template match="segment"> + <h3> + Segment (" + <xsl:value-of select="@label"/>") + [Track + <xsl:value-of select="@track"/>] + <xsl:text> - </xsl:text> + starts at + <xsl:value-of select="@start"/> + </h3> + + <p> + + <!-- <xsl:apply-templates select="event"/> --> + + Contains <xsl:value-of select="count(event)"/> events. + + </p> + +</xsl:template> + +<xsl:template match="event"> + Event +</xsl:template> + + +<!-- Studio --> + +<xsl:template match="studio"> + <h1> + Studio + </h1> + + <xsl:apply-templates select="device"/> + +</xsl:template> + +<xsl:template match="device"> + <h2> + Device (id = <xsl:value-of select="@id"/>, + type = <xsl:value-of select="@type"/>) + </h2> + + <ul> + <xsl:apply-templates select="instrument"/> + </ul> + + <ul> + <xsl:apply-templates select="bank"/> + </ul> + +</xsl:template> + +<xsl:template match="instrument"> + + <li> + Instrument (id = <xsl:value-of select="@id"/>, + channel = <xsl:value-of select="@channel"/>, + type = <xsl:value-of select="@type"/>) + </li> + +</xsl:template> + +<xsl:template match="bank"> + + <li> + Bank (name = <xsl:value-of select="@name"/>, + msb = <xsl:value-of select="@msb"/>, + lsb = <xsl:value-of select="@lsb"/>) + </li> + +</xsl:template> + +</xsl:stylesheet> |