xsl-list
[Top] [All Lists]

Re: Double processing

2004-01-30 12:11:34
At 2004-01-30 13:25 -0500, you wrote:
What I'm trying to do is: if there is more than one consecutive warning
the first para of each warning needs a bullet. This is working but once
it processes that, it repeats the second and third warning again and
then the third one again before continuing.
...
<xsl:template name="warning-list">
...
        <xsl:variable name="next" select="following-sibling::*[1]"/>
            <xsl:for-each select="$next[self::warning]">
                <xsl:call-template name="warning-list"/>

The above will process all warnings, one at a time, walking to each immediately following sibling until there are no immediately following sibling warnings.

<xsl:template match="warning">

This fires for all warnings.

<xsl:choose>
<xsl:when test="following-sibling::warning">

And looks at *all* following siblings for *any* warnings, not just the immediately following sibling ...

    <fo:block text-indent="2cm" font-weight="bold" font-size="12pt"
text-decoration="underline" text-align="center"
keep-with-next.within-page="always"
keep-with-previous.within-page="always" space-after="4mm">
        <xsl:text>WARNINGS</xsl:text>
    </fo:block>
        <fo:block>
            <xsl:call-template name="warning-list"/>

... and displays all adjacent siblings.

Can anyone tell me how to
get it to stop after the last warning in a group and move on? I'm stuck.

Perhaps if your first <xsl:when> in your choose was something along the lines of "do nothing for preceding-sibling::*[1][self::warning]" using an empty template since the warning being processed would already have been processed the first time around?

I hope this helps.

........................... Ken

--
Public courses: sign up for one or both soon to reserve your seat!
Each week:  Monday-Wednesday: XSLT/XPath;  Thursday-Friday: XSL-FO
Washington, DC: 2004-03-15           San Francisco, CA: 2004-03-22
Hong Kong, China: 2004-05-17           Bremen, Germany: 2004-05-24
World-wide on-site corporate, government & user group XML training

G. Ken Holman                 mailto:gkholman(_at_)CraneSoftwrights(_dot_)com
Crane Softwrights Ltd.          http://www.CraneSoftwrights.com/s/
Box 266, Kars, Ontario CANADA K0A-2E0    +1(613)489-0999 (F:-0995)
Male Breast Cancer Awareness  http://www.CraneSoftwrights.com/s/bc


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



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