Re: [xsl] Different behaviour for the first item in a for-each-group

Subject: Re: [xsl] Different behaviour for the first item in a for-each-group
From: "G. Ken Holman" <gkholman@xxxxxxxxxxxxxxxxxxxx>
Date: Sat, 31 Oct 2009 21:56:11 -0400
At 2009-10-31 15:51 -0700, Mark Wilson wrote:
I was not careful in the way I described this problem. Each group consists of a single title with one or more citations. What I must have said is that I wanted to set the Title in each group to "keep". What I *should* have said was, I want to set the only the first group to "keep". For the input data at the end of this email, that would be the title "Further observations".

Is it a co-incidence that it is alphabetically the first and positioned as first? I'm assuming because of your use of <xsl:sort> that the alphabetical order is important in the determination of first.


All the rest would not be marked "keep".

Then I would have worded your request "the first of the sorted population" not "the first of the group".


Clearly, I do not want (from listing 1):
<xsl:if test="position()=1">
<xsl:attribute name="keep-with-previous">always</xsl:attribute>
</xsl:if>

It wasn't clear to me because you were grouping articles and asked for the first of the group. I believe Martin interpreted it the same way.


I now understand you were grouping the population of articles and need a keep on the first of the sorted population.

However, I do not know XPath well. How do I select only the first group for marking and let the other groups pass without marking them?

<xsl:for-each-group select="...population..."> <xsl:sort .../> <xsl:sort .../> <xsl:sort .../> <xsl:variable name="group-position" select="position()"/> <xsl:for-each select="current-group()"> <fo:table-row> <xsl:if test="position()=1 and $group-position=1"> <!--then at the very first of the sorted population--> <xsl:attribute name="keep-with-previous">.....

I hope this helps.

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


-- Upcoming: hands-on XSLT, XQuery and XSL-FO Washington DC Nov 2009 Interested in other classes? http://www.CraneSoftwrights.com/s/i/ Crane Softwrights Ltd. http://www.CraneSoftwrights.com/s/ Training tools: Comprehensive interactive XSLT/XPath 1.0/2.0 video Video lesson: http://www.youtube.com/watch?v=PrNjJCh7Ppg&fmt=18 Video overview: http://www.youtube.com/watch?v=VTiodiij6gE&fmt=18 G. Ken Holman mailto:gkholman@xxxxxxxxxxxxxxxxxxxx Male Cancer Awareness Nov'07 http://www.CraneSoftwrights.com/s/bc Legal business disclaimers: http://www.CraneSoftwrights.com/legal

Current Thread