xsl-list
[Top] [All Lists]

Combining call-template with attribute value templates

2005-02-09 12:10:47

I find the following code XSLT code clumsy:

           <xsl:variable name="resultPath">
                <xsl:call-template name="fullName" />
            </xsl:variable>

            <a href="{str:encode-uri(concat( 'http://example.com/',
                $resultPath, r:testee/r:name ))}" >
                <xsl:value-of select="r:testee/r:name"/>
            </a>

In other words, I dynamically create the href attribute with an attribute 
value template, which among other things contains the return value of the 
fullName template. 

What I found clumsy, is that the only reason I use the xsl:variable is that I 
can't squeeze in the template call into the attr val template. Or how is this 
possible?

Another way could be to use an xsl:attribute construct:

<a>
        <xsl:attribute name="href">
                http://example.com/
                <xsl:call-template name="fullName" />
                <xsl:value-of select="r:testee/r:name" />
        </xsl:attribute>
</a>

I find it a /bit/ cleaner, but it has one big problem: the content isn't run 
through str:encode-uri().

Any ideas? How would you write my initial code snippet in the cleanest, most 
beautiful way while staying functionally equivalent?


Cheers,

                Frans


--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--



<Prev in Thread] Current Thread [Next in Thread>