XML Editor
Sign up for a WebBoard account Sign Up Keyword Search Search More Options... Options
Chat Rooms Chat Help Help News News Log in to WebBoard Log in Not Logged in
Show tree view Topic
Topic Page 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 Go to previous topicPrev TopicGo to next topicNext Topic
Postnext
erik tSubject: xsl - header only once in foreach
Author: erik t
Date: 23 Dec 2008 05:38 AM

hi all,

i want to do the following: in this xsl below i'm doing a grouping and a foreach and according to 'position() = 1' i'm displaying a header. now i also would like to display some h3 in the other TD, but only once. not once every foreach, but once at all.
any help would be most appreciated, cause i'm out of tricks for this one. it would be most helpful if i wouldn't have to change a thing about the structure, but some <xsl:if>-trick which would do it for me! thnx!

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html" version="4.0" encoding="UTF-8" indent="yes" omit-xml-declaration="yes"/>
<xsl:key name="grouperen" match="element" use="concat( categorienaam , '' )"/>
<xsl:template match="/">
<table class="list" cellpadding="0" cellspacing="0" border="0" width="98%">
<xsl:for-each select="//elementen/element[generate-id(.)=generate-id(key('grouperen', concat(categorienaam , '' )))]">
<xsl:sort select="categorienaam"/>
<xsl:for-each select="key('grouperen', concat( categorienaam , '' ))">
<xsl:if test="position() = 1">
<tr>
<td class="header">
<h3>
<xsl:value-of select="categorienaam"/>
</h3>
</td>
<td valign="bottom" colspan="2" nowrap="nowrap">
<h3> <!- i want this only once: -->
From
</h3>
</td>
</tr>
</xsl:if>
</xsl:for-each>
</xsl:for-each>
</table>
</xsl:template>
</xsl:stylesheet>

Postnext
Elias HuterSubject: xsl - header only once in foreach
Author: Elias Huter
Date: 24 Dec 2008 04:15 AM
How about putting that Header just above the for-each statements instead of within. This way you would have a header which shows up one time.

Postnext
erik tSubject: xsl - header only once in foreach
Author: erik t
Date: 24 Dec 2008 04:38 AM
yeah of course i can, but i'm looking for a technique here, i want to know how to do it so i can do other stuff with this technique as well, like giving tr's and td's different classes etc etc

Postnext
erik tSubject: xsl - header only once in foreach
Author: erik t
Date: 13 Jan 2009 08:36 AM
nobody?? it must be doable somehow...?

Postnext
Tony LavinioSubject: xsl - header only once in foreach
Author: Tony Lavinio
Date: 13 Jan 2009 10:02 AM
You might want to ask this on a FO-specific list, or on the
xsl-list run by Mulberry Technologies.

Postnext
erik tSubject: xsl - header only once in foreach
Author: erik t
Date: 14 Jan 2009 05:08 AM
thnx, i'm going to subscribe to The List.

Posttop
erik tSubject: xsl - header only once in foreach
Author: erik t
Date: 14 Jan 2009 06:44 AM
damn, i'm good ;)
i just found out what to do. in the first foreach i add this:

<xsl:for-each select="//elementen/element[generate-id(.)=generate-id(key('grouperen', concat(categorienaam , '' )))]">
<xsl:sort select="categorienaam"/>
<-- new : -->
<xsl:variable name="positie" select="position()"/>

<xsl:for-each select="key('grouperen', concat( categorienaam , '' ))">

this updates the variable positie with the position of the foreach-block.

then later on in the xsl i do this:

<xsl:if test="$positie = 1">
<td valign="bottom" colspan="2" nowrap="nowrap">
<h3> <!- i want this only once: -->From</h3>
</td>
</xsl:if>

so this td only displays when the $positie = 1 (which means i'm doing the first foreach-block). easy :P

 
Topic Page 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 Go to previous topicPrev TopicGo to next topicNext Topic
Download A Free Trial of Stylus Studio 6 XML Professional Edition Today! Powered by Stylus Studio, the world's leading XML IDE for XML, XSLT, XQuery, XML Schema, DTD, XPath, WSDL, XHTML, SQL/XML, and XML Mapping!  
go

Log In Options

Site Map | Privacy Policy | Terms of Use | Trademarks
Stylus Scoop XML Newsletter:
W3C Member
Stylus Studio® and DataDirect XQuery ™are from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2016 All Rights Reserved.