Subject: Re: XML transformation based on parameters
From: Emiliano Pecis <emiliano.pecis@xxxxxxxxx>
Date: Tue, 14 Apr 2009 19:11:05 +0200
|
Thanks Sam! I needed your XSLT1.0 version...
e.
2009/4/14 Sam Byland <shbyland@xxxxxxxxxxx>:
> Emiliano,
>
> if you're limited to XSLT1, then try matching on "param" and place the code
> associated with "@name = $p" in the template body. Something like:
>
> <xsl:stylesheet version="1.0"
> xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
>
> <xsl:param name="p" select="id"/>
> <xsl:param name="v" select="newvalue"/>
>
> <xsl:template match="@* | node()">
> <xsl:copy>
> <xsl:apply-templates select="@* | node()"/>
> </xsl:copy>
> </xsl:template>
>
> <xsl:template match="param">
>
> <xsl:choose>
> <xsl:when test="@name = $p">
> <xsl:value-of select="$v"/>
> </xsl:when>
> <xsl:otherwise>
> <xsl:value-of select="."/>
> </xsl:otherwise>
> </xsl:choose>
>
> </xsl:template>
>
> </xsl:stylesheet>
>
> ...sam
|