Subject: Re: [xsl] Sorting a sequence and selecting the first element after sort From: "Imsieke, Gerrit, le-tex gerrit.imsieke@xxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> Date: Fri, 8 May 2015 12:06:22 -0000 |
You could also use the union operator, or its short form |, as in (foo | *[descendant::foo | descendant::bar])[1] In contrast to the sequence operator (the comma), it will eliminate duplicates and return its results in document order. Gerrit On 08.05.2015 13:57, Jorge . chocolate.camera@xxxxxxxxx wrote: > I answer both questions to myself: > > <xsl:sequence="*[local-name() eq 'foo' or descendant::foo or > descendant::bar][1]"/> > > (unless I got something wrong again). > > Please, excuse me for the noise. > > On Fri, May 8, 2015 at 1:50 PM, Jorge . chocolate.camera@xxxxxxxxx > <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> wrote: >> I now see that, on top of that, I am adding duplicate copies of nodes >> that match both conditions to the sequence (-_-;). I would also >> appreciate a hint on how to make that selection without dupes. >> >> On Fri, May 8, 2015 at 1:44 PM, Jorge . chocolate.camera@xxxxxxxxx >> <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> wrote: >>> I'd like to select the first child of the current node that either: >>> >>> 1. is a "foo" element >>> 2. has "foo" or "bar" descendant(s) >>> >>> The following sequence returns me all nodes matching either or both of >>> those conditions: >>> >>> <xsl:sequence select="foo, *[descendant::foo, descendant::bar]"/> >>> >>> but not necessarily ordered according to their position as children of >>> the current node. As a result, the first element in that sequence, >>> selected like this: >>> >>> <xsl:sequence select="(foo, *[descendant::foo, descendant::bar])[1]"/> >>> >>> is not necessarily the first matching child of the current node. >>> >>> How do I sort elements in that sequence according to their position as >>> children of the current context, so that the first element in that >>> sequence is actually the first matching child in the current node? >>> >> > > -- Gerrit Imsieke GeschC$ftsfC<hrer / Managing Director le-tex publishing services GmbH Weissenfelser Str. 84, 04229 Leipzig, Germany Phone +49 341 355356 110, Fax +49 341 355356 510 gerrit.imsieke@xxxxxxxxx, http://www.le-tex.de Registergericht / Commercial Register: Amtsgericht Leipzig Registernummer / Registration Number: HRB 24930 GeschC$ftsfC<hrer: Gerrit Imsieke, Svea Jelonek, Thomas Schmidt, Dr. Reinhard VC6ckler
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Sorting a sequence and se, Jorge . chocolate.ca | Thread | [xsl] How to Detect string language, VISH RAJPUT svishnu. |
Re: [xsl] Sorting a sequence and se, Jorge . chocolate.ca | Date | Re: [xsl] Concensus on the most ele, Justin Johansson pro |
Month |