[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

RE: Can grouping here the solution ?

Subject: RE: Can grouping here the solution ?
From: Robby Pelssers <Robby.Pelssers@xxxxxxx>
Date: Mon, 21 Nov 2011 20:25:07 +0100
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

Current Thread

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.