Re: [xsl] EXSLT

Subject: Re: [xsl] EXSLT
From: Jeni Tennison <jeni@xxxxxxxxxxxxxxxx>
Date: Fri, 9 May 2003 10:30:06 +0100
Hi Johan,

> I think the error message is clear. But according to
> the concat(node-set) should work with EXSLT. 
> Why Im trying with concat is that I need the string as a variable 
> and not in the output. 

You are trying to use the EXSLT extension function str:concat(), but
because you aren't using the prefix "str:" on your function call, you
are actually using the built-in function concat(). The built-in
function concat() concatenates the two-or-more strings that it is
passed as arguments. The extension function str:concat() from EXSLT
concatenates the values of the nodes in the node set that it is passed
as an argument.

You must declare the prefix for the extension function in the
<xsl:stylesheet> element:

<xsl:stylesheet version="1.0"

and then call the function including the "str:" prefix:

<xsl:template match="*">
   <xsl:variable name="allnodename"

Note that this will only work with processors that support
str:concat() (4XSLT and libxslt). Also note that the call
"str:concat(ancestor-or-self::*)" will *not* give you a string
consisting of the *names* of all the ancestors of the current node,
but rather their values. To do get their names, you should use the code:

<xsl:template match="*">
   <xsl:variable name="allnodename">
     <xsl:for-each select="ancestor-or-self::*">
       <xsl:value-of select="name()" />



Jeni Tennison

 XSL-List info and archive:

Current Thread