Subject: Re: [xsl] Issues using keys to find distinct parent and children From: Martin Honnen <Martin.Honnen@xxxxxx> Date: Wed, 27 May 2009 12:10:19 +0200 |
My issue is that the xslt I have written picks the distinct project type & projects properly. However it picks only the first distinct task under various project but not all the distinct task. I am unable to find my mistake in the code.
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:tns="http://local/Schema/Finance/Common/1.0"
xmlns:tnsa="http://local/Schema/Finance/ChargeableProject/1.0">
<xsl:template match="/"> <Message> <xsl:apply-templates/> </Message> </xsl:template>
<xsl:key name="by-ProjectType" match="tnsa:Project" use="tns:ProjectType"/>
<xsl:key name="by-ProjectNumber" match="tnsa:Project" use="concat(tns:ProjectType, '|', tns:ProjectNumber)"/>
<xsl:key name="by-Task" match="tnsa:Project" use="concat(tns:ProjectType, '|', tns:ProjectNumber, '|', tns:Task/tns:TaskNumber)"/>
<?xml version="1.0" encoding="UTF-8" ?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:tns="http://local/Schema/Finance/Common/1.0" xmlns:tnsa="http://local/Schema/Finance/ChargeableProject/1.0">
<xsl:template match="/"> <Message> <xsl:apply-templates/> </Message> </xsl:template>
<xsl:key name="by-ProjectType" match="tnsa:Project" use="tns:ProjectType"/>
<xsl:key name="by-ProjectNumber" match="tnsa:Project" use="concat(tns:ProjectType, '|', tns:ProjectNumber)"/>
<xsl:template match="tnsa:Projects"> <xsl:apply-templates select="tnsa:Project[generate-id() = generate-id(key('by-ProjectType', tns:ProjectType)[1])]" mode="tns:ProjectType"/> </xsl:template>
<xsl:template match="tnsa:Project" mode="tns:ProjectType"> <Project_Type> <Row> <Type> <xsl:value-of select="'Project_Type'"/> </Type> <Code> <xsl:value-of select="tns:ProjectType"/> </Code> </Row> <xsl:apply-templates select="key('by-ProjectType',tns:ProjectType)[generate-id() = generate-id(key('by-ProjectNumber', concat(tns:ProjectType, '|', tns:ProjectNumber))[1])]" mode="tns:ProjectNumber"/> </Project_Type> </xsl:template>
<!--Task Identification--> <Task> <Row> <Type> <xsl:value-of select="'Task'"/> </Type> <Code> <xsl:value-of select="tns:TaskNumber"/> </Code> </Row> </Task> </xsl:template> </xsl:stylesheet>
Martin Honnen http://msmvps.com/blogs/martin_honnen/
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] Issues using keys to find dis, Kamlesh Bafna | Thread | RE: [xsl] Issues using keys to find, Kamlesh Bafna |
RE: [xsl] Dividing documents based , Michael Kay | Date | Re: [xsl] Number check in multiple , Martin Honnen |
Month |