This is the mail archive of the xsl-list@mulberrytech.com mailing list .


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

RE: accumulator needed


Hip hei!

>   <!-- Draw a quarter note. -->
>   <xsl:template match="note">

You need to declare the parameters used here, i.e. 

  <xsl:param name="x_offset" select="0">
  <xsl:param name="y_offset" select="0">

>     <xsl:if test="type='quarter'">
>       <xsl:element name="g">
>  <xsl:attribute name="transform">
>    <xsl:text>translate(</xsl:text>
>    <xsl:value-of select="$x_offset"></xsl:value-of>
>    <xsl:text>,</xsl:text>
>    <xsl:value-of select="$y_offset"></xsl:value-of>
>    <xsl:text>)</xsl:text>
>  </xsl:attribute>
> 
>  <xsl:element name="use">
>    <xsl:attribute name="xlink:href"
> namespace="http://www.w3.org/1999/xlink";>
>      <xsl:text>MusicGlyphs.svg#BLACKHEAD</xsl:text>
>    </xsl:attribute>
>  </xsl:element>
>       </xsl:element>
>     </xsl:if>
>   </xsl:template>

You could make the accumulator thingy to work by either counting the
durations of previous notes with something like

  sum(preceding-sibling::note/duration)

which wouldn't actually accumulate anything, but would get the job done; or,
you could process the notes by first selecting only the first one and then
in the template for "note" continue by select the following-sibling::note
with the offset parameter.

Hope this helps,

Jarno

 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]