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 |