RE: [xsl] Can grouping here the solution ?

Subject: RE: [xsl] Can grouping here the solution ?
From: "G. Ken Holman" <gkholman@xxxxxxxxxxxxxxxxxxxx>
Date: Mon, 21 Nov 2011 12:52:02 -0500
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