|
Subject: [xsl] XPath expression that yields the same result as xsl:for-each-group? From: "Costello, Roger L. costello@xxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> Date: Thu, 30 May 2019 12:46:06 -0000 |
Hello XSLT/XPath experts!
My XML document consists of a series of rows.
Each row is identified by the combination of two child elements: ARPT__IDENT
and TRM__IDENT.
I want to group the rows. A group consists of those rows with the same
ARPT__IDENT and TRM__IDENT.
This XML document:
<Test>
<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>
<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>
</Test>
is to be grouped this way:
<results>
<group>
<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>
</group>
<group>
<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>
</group>
</results>
I can use xsl:for-each-group to perform the grouping:
<xsl:template match="Test">
<xsl:variable name="rows" select="row" as="element(row)*"/>
<results>
<xsl:for-each-group select="$rows" group-by="concat(ARPT__IDENT, '|',
TRM__IDENT)">
<group>
<xsl:sequence select="current-group()" />
</group>
</xsl:for-each-group>
</results>
</xsl:template>
However, I want to create a variable -- $groups -- which holds the groups and
then iterate over the variable:
<results>
<xsl:for-each select="$groups">
<group>
<xsl:sequence select="." />
</group>
</xsl:for-each>
</results>
What XPath expression will yield the desired value for $groups?
<xsl:variable name="groups" select="???" />
Is there an XPath 2.0 expression that can be used?
/Roger
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| Re: [xsl] creating arbitrary docume, Graydon graydon@xxxx | Thread | Re: [xsl] XPath expression that yie, David Carlisle d.p.c |
| Re: [xsl] creating arbitrary docume, Graydon graydon@xxxx | Date | Re: [xsl] XPath expression that yie, David Carlisle d.p.c |
| Month |