|
Subject: [xsl] Re: XPath expression that yields the same resultasxsl:for-each-group? From: "Costello, Roger L. costello@xxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> Date: Thu, 30 May 2019 21:46:26 -0000 |
Hi Folks,
Some fun queries ...
Context Node: the Test element (root element).
Collect the set of row elements and store them in an XSLT variable:
<xsl:variable name="rows" select="row" as="element(row)*" />
Group the rows using the composite key ARPT__IDENT | TRM__IDENT and store the
groups in an XSLT variable:
<xsl:variable name="groups" as="array(element(row))*" select="
let $keys :=
distinct-values($rows/concat(ARPT__IDENT, '|', TRM__IDENT))
return
for $i in $keys
return
array {$rows[$i = concat(ARPT__IDENT, '|', TRM__IDENT)] }
"/>
How many groups are there?
Query: count($groups)
Result: 2
What is the content of the first group?
Query: $groups[1]
Result:
<row>
<ARPT__IDENT>A</ARPT__IDENT>
<TRM__IDENT>X</TRM__IDENT>
<Data>Foo</Data>
</row>
<row>
<ARPT__IDENT>A</ARPT__IDENT>
<TRM__IDENT>X</TRM__IDENT>
<Data>Bar</Data>
</row>
What is the content of the second group?
Query: $groups[2]
Result:
<row>
<ARPT__IDENT>A</ARPT__IDENT>
<TRM__IDENT>Y</TRM__IDENT>
<Data>Blah</Data>
</row>
<row>
<ARPT__IDENT>A</ARPT__IDENT>
<TRM__IDENT>Y</TRM__IDENT>
<Data>Plugh</Data>
</row>
Wicked cool!
Thanks for all your help!
/Roger
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| Re: [xsl] Re: XPath expression that, Martin Honnen martin | Thread | Re: [xsl] Re: XPath expression that, Martin Honnen martin |
| Re: [xsl] Re: XPath expression that, Martin Honnen martin | Date | Re: [xsl] Re: XPath expression that, Martin Honnen martin |
| Month |