Subject: [xsl] XSLT Grouping/Filtering issue with preceding/following axes From: Jacquo Johnson <genxgeek@xxxxxxxxx> Date: Fri, 5 Aug 2005 08:51:16 -0600 |
Hi, I am very new to XSLT and need some enlightenment per the following issue grouping filtering issue. Any information (I'm sure this is FAQ'd somewhere) would be greatly appreciated. Thank you. Description: I am having the following problem when grouping/filtering as such in that some nodes are getting filtered out/grouped correctly while others do not based on position when using either preceding or following. XSL: ... <xsl:template match="/"> <!-- This doesn't work...group is not filtered correctly --> <xsl:variable name="uh" select="//Record[CodeId='FRED']"/> <xsl:element name="Copy"> <xsl:copy-of select="$uh"/> </xsl:element> <xsl:element name="Filter"> <xsl:copy-of select="$uh[(not(AttributeName=preceding::*/AttributeName)]"/> </xsl:element> <!-- This works but I'm sure is not the best way to do this... --> <xsl:variable name="uh" select="//Record[CodeId='FRED']"/> <xsl:element name="Copy"> <xsl:copy-of select="$uh"/> </xsl:element> <xsl:element name="Filter"> <xsl:copy-of select="$uh[(not(AttributeName=preceding::*/AttributeName) and position()=1) or (not(AttributeName=following::*/AttributeName))]"/> </xsl:element> </xsl:template> </xsl:stylesheet> XML: <Results> <Record> <CodeId>FRED</CodeId> <AttributeName>LT</AttributeName> <OID>647f802e5f8675a6</OID> <Id>AU 100-1</Id> <AttributeValue>YES</AttributeValue> </Record> <Record> <CodeId>FRED</CodeId> <AttributeName>CPQ</AttributeName> <OID>647f802e5f8675a6</OID> <Id>AU 100-2</Id> <AttributeValue>YES</AttributeValue> </Record> <Record> <CodeId>30DAYPM</CodeId> <AttributeName>LT</AttributeName> <OID>daa575325f8675a6</OID> <Id>AU 100-3</Id> <AttributeValue>YES</AttributeValue> </Record> <Record> <CodeId>30DAYPM</CodeId> <AttributeName>CSW</AttributeName> <OID>daa575325f8675a6</OID> <Id>AU 100-4</Id> <AttributeValue>YES</AttributeValue> </Record> <Record> <CodeId>FRED</CodeId> <AttributeName>LT</AttributeName> <OID>647f802e5f8675a6</OID> <Id>AU 100-5</Id> <AttributeValue>YES</AttributeValue> </Record> <Record> <CodeId>FRED</CodeId> <AttributeName>CPQ</AttributeName> <OID>647f802e5f8675a6</OID> <Id>AU 100-6</Id> <AttributeValue>YES</AttributeValue> </Record> <Record> <CodeId>30DAYPM</CodeId> <AttributeName>LT</AttributeName> <OID>daa575325f8675a6</OID> <Id>AU 100-7</Id> <AttributeValue>YES</AttributeValue> </Record> <Record> <CodeId>30DAYPM</CodeId> <AttributeName>CCSW</AttributeName> <OID>daa575325f8675a6</OID> <Id>AU 100-8</Id> <AttributeValue>YES</AttributeValue> </Record> </Results>
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] XML parser discussion for, Rahil | Thread | Re: [xsl] XSLT Grouping/Filtering i, Joris Gillis |
Re: [xsl] XML parser discussion for, Rahil | Date | [xsl] RE: What did "template match", Michael Kay |
Month |