Subject: RE: call-template and execute xsl command
From: "Michael Kay" <michael.h.kay@xxxxxxxxxxxx>
Date: Mon, 15 Apr 2002 20:04:43 +0100
|
You can't add attributes to an element after adding a text node. This is so
that XSLT processors are able to operate serially.
What you are trying to do is effectively:
<xsl:element name="e">
text
<xsl:attribute name="a">5</xsl:attribute>
</xsl:element>
A processor trying to output
<e a="5">text</e>
would have to delay outputting the "text" until it was sure there were no
attributes to be added.
Michael Kay
Software AG
home: Michael.H.Kay@xxxxxxxxxxxx
work: Michael.Kay@xxxxxxxxxxxxxx
> -----Original Message-----
> From: owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> [mailto:owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx]On Behalf Of Eric Smith
> Sent: 15 April 2002 18:27
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: call-template and execute xsl command
>
>
> Hi
>
> I have a named template of the following form:
>
>
> <xsl:template name= "attributes">
> <xsl:choose>
> <xsl:when test="@font-size">
> <xsl:attribute name="font-size"><xsl:value-of
> select="@font-size"/></xsl:attribute>
> </xsl:when>
> <xsl:when test="@text-align">
> This text prints out if @text-align but the xsl:command
> is not executed
> <xsl:attribute name="text-align"><xsl:value-of
> select="@text-align"/></xsl:attribute>
> </xsl:when>
> </xsl:choose>
> </xsl:template>
>
> called like this:
> <xsl:variable name='y'>
> <xsl:call-template name='attributes'/>
> </xsl:variable>
>
> However, as you may see by my notes above, text prints out fine
> subject to the condition, however I cannot change or add
> attributes as required.
>
> Any suggestions?
>
> thanx
>
> --
> Eric Smith
>
> XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
>
>
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
|