[xsl] How to create variable element from a couple of strings

Subject: [xsl] How to create variable element from a couple of strings
From: "Yang" <sfyang@xxxxxxxxxxxxx>
Date: Thu, 24 May 2001 13:21:56 +0800
Hi, all

I want to set up a set of variable elements  from  two given strings,
(**string** - for variable value  and   **vname** - for variable name )

   <variable name="x1" select="a"/>
   <variable name="x2" select="b"/>
   ...

I am using recursive method to extract each pair value successfully.
However when I add variable statement I get the error of
                Required attribute 'name' is missing'

from mxxml 3 parser.

**xslt listing **

<?xml-stylesheet href="decompose.xsl" type="text/xsl"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform";>
<xsl:param name="string" select="'a,b,c,d,e,f,'"/>
<xsl:param name="vname"  select="'x1,x2,x3,x4,x5,x6,'"/>

<xsl:template match="/">
<xsl:call-template name="decompose">
<xsl:with-param name="s" select="$string"/>
<xsl:with-param name="nx" select="$vname"/>
</xsl:call-template>
</xsl:template>

<xsl:template name="decompose">
<xsl:param name="s" />
<xsl:param name="nx" />
<xsl:if test="string($s)" >
<xsl:value-of select="substring-before($nx,',')"/>
<xsl:value-of select="substring-before($s,',')"/>

<!-- following variable element causes error messages -->
<xsl:variable>
<xsl:attribute name="name"><xsl:value-of
select="substring-before($nx,',')"/>
</xsl:attribute>
<xsl:value-of select="substring-before($s,',')"/>
</xsl:variable>

<xsl:call-template name="decompose">
<xsl:with-param name="s" select="substring-after($s,',')"/>
<xsl:with-param name="nx" select="substring-after($nx,',')"/>
</xsl:call-template>
</xsl:if>
</xsl:template>
</xsl:stylesheet>

Thanks in advance for any help.

Sun-fu Yang

sfyang@xxxxxxxxxxxxx




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


Current Thread