Re: [xsl] Grouping based on element content

Subject: Re: [xsl] Grouping based on element content
From: David Carlisle <davidc@xxxxxxxxx>
Date: Tue, 25 Nov 2008 13:45:20 GMT
> But when i apply my stylesheet all the <Cell> are getting converted
> into <source>. Please guide me where I am going wrong.

You group the input into two groups, split on 'to' (beware using text()
and eq together by the way: it will make your code fail if there are for
example any comments in the source) but then you treat both groups 
the same way mapping each item in <source> Your expected output had
<target> but nothing in your stylesheet code would generate a target.



something like this, perhaps

<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
		xmlns:ss="s" >
 
<xsl:output indent="yes"/>

<xsl:template match="ss:Row">
<xsl:element name="map">
<xsl:for-each select="ss:Cell[ss:Data='to']/preceding-sibling::*/ss:Data">
<source><xsl:apply-templates/></source>
</xsl:for-each>
<xsl:for-each select="ss:Cell[ss:Data='to']/following-sibling::*/ss:Data">
<target><xsl:apply-templates/></target>
</xsl:for-each>
</xsl:element>
</xsl:template>

</xsl:stylesheet>

________________________________________________________________________
The Numerical Algorithms Group Ltd is a company registered in England
and Wales with company number 1249803. The registered office is:
Wilkinson House, Jordan Hill Road, Oxford OX2 8DR, United Kingdom.

This e-mail has been scanned for all viruses by Star. The service is
powered by MessageLabs. 
________________________________________________________________________

Current Thread