Re: [xsl] XSLT Grouping/Filtering issue with preceding/following axes

Subject: Re: [xsl] XSLT Grouping/Filtering issue with preceding/following axes
From: "Joris Gillis" <roac@xxxxxxxxxx>
Date: Sat, 06 Aug 2005 09:47:07 +0200
Tempore 23:03:47, die 08/05/2005 AD, hinc in xsl-list@xxxxxxxxxxxxxxxxxxxxxx scripsit Jacquo Johnson <genxgeek@xxxxxxxxx>:

	 <!-- However, this does not work for the 30DAYPM as it is missing
the LT CodeId group -->
  <xsl:variable name="uh2" select="//Record[CodeId='30DAYPM']"/>
  <xsl:element name="Copy">
      <xsl:copy-of select="$uh2"/>
   </xsl:element>
   <xsl:element name="Filter">
      <xsl:copy-of
select="$uh2[not(AttributeName=preceding::*/AttributeName)]"/>
   </xsl:element>

indeed, there's an additional predicate missing: <xsl:copy-of select="$uh2[not(AttributeName=preceding::*[CodeId='30DAYPM']/AttributeName)]"/>

btw, here you have a sample using the Muenchian technique:

<xsl:key name="recordByC" match="Record" use="CodeId"/>
<xsl:key name="recordByCA" match="Record" use="concat(CodeId,AttributeName)"/>

<xsl:template match="/">
	<xsl:variable name="uh2" select="key('recordByC','30DAYPM')"/>
	<xsl:element name="Copy">
		<xsl:copy-of select="$uh2"/>
	</xsl:element>
	<xsl:element name="Filter">
		<xsl:copy-of select="$uh2[generate-id()=generate-id(key('recordByCA',concat('30DAYPM',AttributeName))[1])]"/>
	</xsl:element>
</xsl:template>

regards,
--
Joris Gillis (http://users.telenet.be/root-jg/me.html)
B+N&N9N;N.N:N?N?N= N5N9N=N1N9 N<N1N;N;N?N= N7 ON9N;ON;N1N;N?N=B;  - NN;N5ON2N?ON;N?O

Current Thread