xsl-list
[Top] [All Lists]

RE: TOC despair

2003-12-03 17:03:32
Actually, I think there are a couple more pitfalls as well. Because if your 
section orders were reveresed in your example, if African Elephants came after 
Indian Elephants, then you'd end up with a break before Serengeti.

So to add my input:

<xsl:template match="chapter/section">
  <
  <xsl:if test="position() = last() and not(child::section)">

and then call the 

christopher hearns, Esq.
let me touch your perfect body with my mind
http://www.countplusplus.ca


-----Original Message-----
From: owner-xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
[mailto:owner-xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com]On Behalf Of 
Binkley,
Peter
Sent: Wednesday, December 03, 2003 18:50
To: 'xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com'
Subject: RE: [xsl] TOC despair


How about test="position() = last()" in the "section" template? You might
also need to test whether the parent is a chapter instead of another
section.

Peter


-----Original Message-----
From: Gustaf Liljegren 
[mailto:gustaf(_dot_)liljegren(_at_)bredband(_dot_)net] 
Sent: Wednesday, December 03, 2003 4:43 PM
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: [xsl] TOC despair


This shouldn't be hard, but I can't get it right. I'll try to 
give enough info. The XML structure looks something like this:

<book>
  <chapter>
    <section>
      <section/>
    </section>
  </chapter>
</book>

One section may contain other sections an so on. The problem 
is in the TOC generation, where I want a little space after 
each chapter, like so:

Chapter 1: Elephants....................2  <-- chapter
African Elephants.......................2  <-- chapter/section
  Serengeti.............................3  <-- 
chapter/section/section Indian 
Elephants........................4  <-- chapter/section
                                           <-- space here, 
please Chapter 2: Tigers.......................5

How do I say in XPath "the last section in this chapter"? 
Here's my try, that won't work:

<xsl:template match="section" mode="toc">
  ...
  <xsl:if test="count(following::section) = 0">
    <xsl:attribute name="margin-bottom">1em</xsl:attribute>
  </xsl:if>
  ...
</xsl:template>

Thanks,

Gustaf



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


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


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



<Prev in Thread] Current Thread [Next in Thread>