Subject: RE: [xsl] xsl:number and conditional From: "Michael Kay" <mike@xxxxxxxxxxxx> Date: Tue, 31 May 2005 23:10:54 +0100 |
> $footcite in this context is a function parameter that is defined as > element(), but in practice is either db:footnote or db:citation. So I > have: > > <xsl:function name="bib:number-footcite" as="xs:string"> > <xsl:param name="footcite" as="element()"/> > <xsl:choose> > <xsl:when test="$chapters/db:chapter"> > <xsl:number level="any" select="$footcite" > > count="db:footnote|db:citation[not($footcite/ancestor::db:footnote)]" > from="db:chapter"/> > </xsl:when> > <xsl:otherwise> > <xsl:number level="any" select="$footcite" > > count="db:footnote|db:citation[not($footcite/ancestor::db:foot > note)]"/> > </xsl:otherwise> > </xsl:choose> > </xsl:function> Does a footnote ever have a footnote as an ancestor? If not then > > I then call the function in those templates like so: > > <xsl:template match="db:citation"> > <xsl:choose> > <xsl:when test="$citeclass='note-bib' or > $citeclass='note-nobib'"> > <xsl:variable name="footnote-number"> > <xsl:value-of select="bib:number-footcite(.)"/> > </xsl:variable> Don't do this, do <xsl:variable name="footnote-number" select="bib:number-footcite(.)"/> I think the important thing here is that if you want consecutive numbers, the elements you call xsl:number on must be the same elements that you match in the count="" pattern of xsl:number. It's not obvious from your code that this is the case here: but without the source structure and information about when this template is being invoked, it's impossible to tell. Michael Kay http://www.saxonica.com/ > <xsl:text>[</xsl:text> > <a href="#fn{$footnote-number}" > name="fnm{$footnote-number}" > class="footnote-mark"> > <xsl:value-of select="$footnote-number"/> > </a> > <xsl:text>]</xsl:text> > </xsl:when> > <xsl:otherwise> > <xsl:call-template name="bib:format-citation"> > <xsl:with-param name="output-format" select="'xhtml'"/> > </xsl:call-template> > </xsl:otherwise> > </xsl:choose> > </xsl:template> > > So if I don't specify not to count db:citation elements that are > descendents of db:footnote, they get double-counted. > > Bruce
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
RE: [xsl] xsl:number and conditiona, Michael Kay | Thread | [xsl] xsl:include problems, Hardy Merrill |
RE: [xsl] how to rename attributes , Michael Kay | Date | Re: [xsl] xsl:number and conditiona, Bruce D'Arcus |
Month |