| Subject: Re: [xsl] 'interleaved' numbering From: Jeni Tennison <jeni@xxxxxxxxxxxxxxxx> Date: Wed, 21 Aug 2002 17:20:33 +0100 | 
Andrew Welch wrote:
> Anyway, the problem you have is that <theorem> exist within
> <subSect>, therefore <xsl:number> is no good. Also, counting
> preceding-sibling::theorem's is no good as you want only those that
> are in the current <section>.
>
> So I would recommend creating a variable with the values you need, and
> then referencing that variable when you need the number.  So as a
> top-level-element (child of the root) you would want a variable like:
[snip]
A simpler solution is to use two xsl:number instructions, one counting
theorems at "any" level, from the nearest section. I don't have the
actual example since attachments don't come through to the list, but
with the source:
<doc>
  <section>
    <subSect>
      <theorem>1.1</theorem>
      <theorem>1.2</theorem>
    </subSect>   
    <subSect>
      <theorem>1.3</theorem>
    </subSect>   
  </section>
  <section>
    <subSect>
      <theorem>2.1</theorem>
    </subSect>   
  </section>
</doc>
and the template:
<xsl:template match="theorem">
  <theorem>
    <xsl:number count="section" />.<xsl:number level="any"
                                               from="section" />
    <xsl:text /> (<xsl:value-of select="." />)<xsl:text />
  </theorem>
</xsl:template>
I get:
<theorem>1.1 (1.1)</theorem>
<theorem>1.2 (1.2)</theorem>
<theorem>1.3 (1.3)</theorem>
<theorem>2.1 (2.1)</theorem>
Cheers,
Jeni
---
Jeni Tennison
http://www.jenitennison.com/
 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
| Current Thread | 
|---|
| 
 | 
| <- Previous | Index | Next -> | 
|---|---|---|
| RE: [xsl] 'interleaved' numbering, Andrew Welch | Thread | [xsl] Adding headers attributes to , Robert D Anderson | 
| Re: [xsl] Looping through attribute, Jeni Tennison | Date | RE: [xsl] telling processor what to, TSchutzerWeissmann | 
| Month |