[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] RE: Can grouping here the solution ?
No this will not work... <xsl:for-each group select="pagenumber eq page" group-by="page" > </xsl:for-each-group> <!-- first of all you are using a Boolean expression in your select clause whereas you want to use a predicate which in this case would be Select="page[your predicate]" But you are really not interested in having just groups of pagenumbers. You want to have groups of entries so it still needs to be <!-- now the select expression depends on the context but assuming you are inside the parent 'display-articles' matching template then you can do something like --> <xsl:param name="pageNumber"/> <xsl:template match="display-articles"> <xsl:for-each-group select="entry" group-by="page"> <!-- only handle grouped entries if the grouping-key which is page equals our page parameter --> <xsl:if test="current-grouping-key() eq $pageNumber"> <xsl:apply-templates select="current-group()"/> <!-- we tell the processor to continue handling the entries of THIS (current) group. </xsl:if> </xsl:for-each-group> </xsl:template> <xsl:template match="entry"> <!-- here is where you want to do the heavy lifting and transforming your entries --> </xsl:template> Hope this gives a bit of insight, Robby -----Original Message----- From: Roelof Wobben [mailto:rwobben@xxxxxxxxxxx] Sent: Monday, November 21, 2011 8:14 PM To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx Subject: RE: Can grouping here the solution ? Hello, Supposed I only want to check the page number. Can this then work. <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/1999/xhtml" version="2.0 /> <xsl:variable name="page"/> <!-- this has to be filled with the value of page in the xml file --> <xsl:variable name="pagenumber /> <! on some way I have this to fill with the url paramater @value which contains the 2005-02 ---> xsl:for-each group select="pagenumber eq page" group-by="page" /> <!-- Do display here --> <xsl: for-each /> Roelof > From: Robby.Pelssers@xxxxxxx > To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx > Date: Mon, 21 Nov 2011 19:10:15 +0100 > Subject: RE: Can grouping here the solution ? > > Ok Ken, thx for the advice. I actually never used to do so but at some point in time I figured it would express more clearly the intent. I guess I should just always assume this by default to safe on typing. > > -----Original Message----- > From: G. Ken Holman [mailto:gkholman@xxxxxxxxxxxxxxxxxxxx] > Sent: Monday, November 21, 2011 6:52 PM > To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx; xsl-list@xxxxxxxxxxxxxxxxxxxxxx > Subject: RE: Can grouping here the solution ? > > In all of my professional work with XSLT I have very rarely ever had > to address text() nodes individually. > > At 2011-11-21 18:41 +0100, Robby Pelssers wrote: > >You can do something like > > > ><xsl:for-each group select="display-articles/section/entry" > >group-by="concat(substring(datum/text(), 1,7), '/', page/text())"> > > <!-- this way you group on unique combinations of e.g. strings > > like '2005-02/1' --> > ></xsl:for-each> > > > >Robby > > In your example above where you have "datum/text()" and > "page/text()", you are better served by using simply "datum" and "page". > > Consider if your user has the following: > > <datum>2003<!--OCR read this '3' as an '8'-->-05-02</datum> > > The expression "substring(datum,6,2)" evaluates as "05" as expected. > > The expression "substring(datum/text(),6,2)" triggers a runtime error > because of supplying more than one node for the first argument. > > Remember in XPath that the value of an element is the concatenation > of that element's descendent text nodes. > > I tell my students if they ever think they need to address a text > node directly, to think again because they probably don't. > > I hope this is helpful. > > . . . . . . . . . . Ken > > > -- > Contact us for world-wide XML consulting and instructor-led training > Free 5-hour video lecture: XSLT/XPath 1.0 & 2.0 http://ude.my/t37DVX > Crane Softwrights Ltd. http://www.CraneSoftwrights.com/s/ > G. Ken Holman mailto:gkholman@xxxxxxxxxxxxxxxxxxxx > Google+ profile: https://plus.google.com/116832879756988317389/about > Legal business disclaimers: http://www.CraneSoftwrights.com/legal
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|