[XSL-LIST Mailing List Archive Home]
[By Thread]
[By Date]
Re: [xsl] xsl:number and conditional
Subject: Re: [xsl] xsl:number and conditional From: Bruce D'Arcus <bdarcus@xxxxxxxxx> Date: Tue, 31 May 2005 12:03:18 -0400 |
On 5/31/05, Michael Kay <mike@xxxxxxxxxxxx> wrote: > > If I understand right, this, in the context of a function: > > > > <xsl:number level="any" select="$footcite" > > > > count="db:footnote|db:citation[not($footcite/ancestor::db:foot > > note)]"/> > > > > ... should not be counting db:citation elements which are descendents > > of db:footnote. > > > > Is that right? > > Not quite. There are two cases: > > if $footcite has an ancestor that is a db:footnote, then it counts all > db:footnote elements .. but not the db:citation descendent? > otherwise, it counds all db:footnote and db:citation elements $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:footnote) ]"/> </xsl:otherwise> </xsl:choose> </xsl:function> 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> <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 | Re: [xsl] xsl:number and conditiona, Wendell Piez |
RE: [xsl] xsl:number and conditiona, Michael Kay | Date | [xsl] xsl:include problems, Hardy Merrill |
Month |