xsl-list
[Top] [All Lists]

Re: [xsl] Can group-by treat its target it two ways?

2011-11-07 17:15:06
On 7 November 2011 17:15, Wendell Piez <wapiez(_at_)mulberrytech(_dot_)com> 
wrote:
Hi again,

As long as we're tuning each other's code:

On 11/5/2011 2:18 PM, Mark wrote:

<xsl:for-each-group select="Word" group-by="if
(lower-case(substring(@word,1,1)) eq 'č' or
lower-case(substring(@word,1,1)) eq 'ř' or
lower-case(substring(@word,1,1)) eq 'š' or
lower-case(substring(@word,1,1)) eq 'ž') then
lower-case(substring(@word,1,1)) else if
(lower-case(substring(@word,1,2)) eq 'ch') then 'ch' else
lower-case(substring(cps:remove-diacritics(@word), 1, 1))">

Regular expressions?

if matches(lower-case(@word),'^([čřšž]|ch)')
  then replace(lower-case(@word),'^([čřšž]|ch).*$','$1')
  else lower-case(substring(cps:remove-diacritics(@word), 1, 1))

or at least:

if  (lower-case(substring(@word,1,1)) = ('č', 'ř','š','ž') ...

which could then be:

<xsl:variable name="seq" select="('č', 'ř','š','ž')" as="xs:string+"/>

with:

if  (lower-case(substring(@word,1,1)) = $seq

It would be interesting to know how 'group by' gets evaluated, if its
once per item in the select this sort of tweak might make a
difference...


-- 
Andrew Welch
http://andrewjwelch.com

--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--