|
Subject: [xsl] with-param looping problem... From: Robert Wilkins <wilkins.robert@xxxxxxxxxxx> Date: Fri, 6 Oct 2006 17:44:22 -0400 |
<Project> <Tasks> <Task> <UID>1</UID> <ID>1</ID> <Name>Do something</Name> </Task> <Task> <UID>2</UID> <ID>2</ID> <Name>Do something else</Name> </Task> <Task> <UID>3</UID> <ID>3</ID> <Name>Do everything else</Name> </Task> <Task> <UID>4</UID> <ID>4</ID> <Name>A job</Name> </Task> <Task> <UID>5</UID> <ID>5</ID> <Name>A biggger job</Name> </Task> <Task> <UID>6</UID> <ID>6</ID> <Name>the biggest job</Name> </Task> </Tasks> <Resources> <Resource> <UID>1</UID> <ID>1</ID> <Name>Tom</Name> </Resource> <Resource> <UID>2</UID> <ID>2</ID> <Name>Dick</Name> </Resource> <Resource> <UID>3</UID> <ID>3</ID> <Name>Harry</Name> </Resource> </Resources> <Assignments> <Assignment> <UID>1</UID> <TaskUID>1</TaskUID> <ResourceUID>1</ResourceUID> </Assignment> <Assignment> <UID>2</UID> <TaskUID>2</TaskUID> <ResourceUID>2</ResourceUID> </Assignment> <Assignment> <UID>3</UID> <TaskUID>3</TaskUID> <ResourceUID>3</ResourceUID> </Assignment> <Assignment> <UID>4</UID> <TaskUID>4</TaskUID> <ResourceUID>1</ResourceUID> </Assignment> <Assignment> <UID>5</UID> <TaskUID>5</TaskUID> <ResourceUID>2</ResourceUID> </Assignment> <Assignment> <UID>6</UID> <TaskUID>6</TaskUID> <ResourceUID>3</ResourceUID> </Assignment> </Assignments> </Project>
<?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:output method="html"/> <xsl:key name="task" match="Task" use="UID"/> <xsl:key name="job" match="Assignment" use="TaskUID"/> <xsl:key name="worker" match="Resource" use="UID"/>
<html>
<head></head>
<body>
<xsl:for-each select="//Task">
<xsl:for-each select="key('task',UID)">
<tr>
<td>
<xsl:value-of select="key
('task',UID)/Name"/>
</td>
<td>
<xsl:value-of select="key
('task',UID)/UID"/>
</td>
<td>
<xsl:call-template name="get-uid">
<xsl:with-param name="rid"
select="key('task',UID)/ResourceUID"/>
</xsl:call-template>
</td>
</tr>
</xsl:for-each>
</xsl:for-each>
</body>
</html>
</xsl:template> <xsl:template name="get-uid">
<xsl:param name="rid"/>
<xsl:call-template name="get-name">
<xsl:with-param name="rid"/>
</xsl:call-template>
</xsl:template> <xsl:template name="get-name">
<xsl:param name="rid"/>
<xsl:value-of select="key('worker',UID)/Name"/>
</xsl:template>
</xsl:stylesheet><html>
<head>
</head>
<body>
<tr>
<td>Do something</td>
<td>1</td>
<td>Tom</td>
</tr>
<tr>
<td>Do something else</td>
<td>2</td>
<td>Dick</td>
</tr>
<tr>
<td>Do everything else</td>
<td>3</td>
<td>Harry</td>
</tr>
<tr>
<td>A job</td>
<td>4</td>
<td></td>
</tr>
<tr>
<td>A biggger job</td>
<td>5</td>
<td></td>
</tr>
<tr>
<td>the biggest job</td>
<td>6</td>
<td></td>
</tr>
</body>
</html>
I can't figure out why this only retrieves the names the first time around. I sure would appreciate some help. My thanks in advance.
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| RE: [xsl] working out where the las, Robert Walpole | Thread | RE: [xsl] with-param looping proble, Michael Kay |
| Re: [xsl] HTML-diff, Mukul Gandhi | Date | RE: [xsl] with-param looping proble, Michael Kay |
| Month |