Re: [xsl] Basic help needed.

Subject: Re: [xsl] Basic help needed.
From: Richard Lewis <richard.lewis@xxxxxxxxx>
Date: Thu, 30 Oct 2003 09:30:30 +0000
On Thursday 30 Oct 2003 07:01, kaseykim@xxxxxxxxxxxx wrote:
> Guys
> I would really appreciate if you can help me, why, in the following XSL
> code, the paramter is not being passed from the parent node for the child
> node. I read through every tutorial and I could not yet figure out why it
> does not work.
>
>
> <?xml version="1.0" encoding="ISO-8859-1"?>
> <xsl:stylesheet version="1.0"
> xmlns:xsl="http://www.w3.org/1999/XSL/Transform";>
>
> <xsl:template match="PROJECT">
> INSERT INTO PROJECT <xsl:value-of select="@PID"/>,
> <xsl:value-of select="TITLE"/>,
> <xsl:value-of select="START_DATE"/>,
> <xsl:value-of select="END_DATE"/>,
> <xsl:value-of select="CREATION_DATE"/>;
>
> <xsl:for-each select="EXPERIMENT">
> <xsl:apply-templates>
> <xsl:with-param name="my_pid" select="@PID" />
> </xsl:apply-templates>
> </xsl:for-each>

It looks to me as if the @PID arrtibute is an attribute of the PROJECT 
element, not the EXPERIMENT element.

But also, I don't think <xsl:for-each> is necessary here:

<xsl:apply-templates select="EXPERIMENT">
	<xsl:with-param name="my_pid" select="../@PID" />
</xsl:apply-templates>

(NOTE: '../' might not be neceassry here, I can never remember!)
>
> </xsl:template>
>
>

Also, I don't think its necessary to name this template; it can just match 
EXPERIMENT elemnts, can't it?

>
> <xsl:template name="experiment" match="EXPERIMENT">
> <xsl:param name="my_pid" />
> INSERT INTO EXPERIMENT <xsl:value-of select="@EXPID"/>,
> <xsl:value-of select="TITLE"/>,
> <xsl:value-of select="START_DATE"/>,
> <xsl:value-of select="END_DATE"/>,
> <xsl:value-of select="ORG_NAME"/>,
> <xsl:value-of select="ORG_ADDRESS"/>,
> <xsl:value-of select="LOCATION"/>,
> <xsl:value-of select="$my_pid"/>;
> </xsl:template>
>
> </xsl:stylesheet>
>

Cheers,
Richard


 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


Current Thread