Next in thread → Next in month →

Re: [xml-dev] ganttproject xsl layout challange

From
David Carlisle <>
To
Date
2006-11-28T12:53:57Z
ID
<>
Thread
Re: [xml-dev] ganttproject xsl layout challange
> so how does this keys thing work then?

more of an xsl-list question that an xml-dev one, but basically whenever
you have

/some/path/to/elem[@foo=something]

then instead of searching to find an elem with that property every time,
you can tell the system to make an internal index or hash table or
whatever it wants to speed things up, 

<xsl:key name="alloc" match="allocation" use="@task-id"/>
<xsl:key name="resource" match="resource" use="@id"/>

then key('alloc',...) will quickly return the allocations with  id ...,
so you can replace
<xsl:for-each select="../../allocations/allocation[task-id =current()/id]">
<xsl:for-each select="../../resources/resource[id = current()/resource-id]">
<xsl:value-of select="name"/>
</xsl:for-each>
</xsl:for-each>

by something like

<xsl:for-each select="key('resource',key('alloc',@id)/@resource-id)">
 <xsl:value-of select="@name"/>
</xsl:for-each>


David
Next in thread → Next in month →