|
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 |