Subject: [xsl] Re: Re: A question about the expressive power and limitations of XPath 2.0 From: Dimitre Novatchev <dnovatchev@xxxxxxxxx> Date: Sun, 13 Jan 2002 02:08:49 -0800 (PST) |
Hi Jeni, > OK, let me think... a higher-order distinct function is an example. > You have structured identifiers of the form "group.subgroup" and you > want to return a unique set of nodes based on the "group" part of the > identifier (note that Mike said they were discussion how to support > this already, so perhaps there'll be a new 'distinct' clause added to > the for expression to solve it). A recursive solution would be: > > <xsl:function name="my:distinct"> > <xsl:param name="nodes" type="node*" select="()" /> > <xsl:param name="distinct" type="node*" select="()" /> > <xsl:variable name="new-distinct" > select="if ($nodes[1] and > some $n in ($distinct) > satisfies (substring-before($n/@id, '.') = > substring-before($nodes[1]/@id, '.'))) > then ($distinct | $n) > else $distinct" /> > <xsl:result select="if ($nodes) > then my:distinct($nodes[position() > 2], > $new-distinct) > else $distinct > </xsl:function> I'm sorry, but it's not absolutely obvious. Let's have an example: $nodes contains: a1.b1 a1.c1 a1.b1 a1.b1.c1 a2.b2 a2.c2 a2.b2 a2.b2.c2 Then what should be the result of distinct() ? Cheers, Dimitre. __________________________________________________ Do You Yahoo!? Send FREE video emails in Yahoo! Mail! http://promo.yahoo.com/videomail/ XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] Re: Re: Regular expression fu, Dimitre Novatchev | Thread | Re: [xsl] Re: Re: A question about , Jeni Tennison |
Re: [xsl] Re: Re: Regular expressio, Jeni Tennison | Date | Re: [xsl] Re: Re: A question about , Jeni Tennison |
Month |