[XSL-LIST Mailing List Archive Home] [By Thread] [By Date]

Re: [xsl] hoe to use "(" within a variable


Subject: Re: [xsl] hoe to use "(" within a variable
From: Jeni Tennison <jeni@xxxxxxxxxxxxxxxx>
Date: Mon, 12 Aug 2002 11:52:53 +0100

Hi Vinoth,

> I need to define a variable in XSL sheet as follows: <xsl:variable
> name="entering_log" select='sprintf(log_str, "\n%s: %d: %s: %s",
> __FILE__,__LINE__,fn, "Entering"); log_func();' ></xsl:variable> I'm
> getting an error: "Could not find function: sprintf()" from the XSL
> engine. How to escape the characters ( ) " ' so that they will be
> interpreted as normal text by the XSL engine.

I guess that you want the $entering_log variable to hold the string:

  'sprintf(log_str, "\n%s: %d: %s: %s", __FILE__, __LINE__, fn,
   "Entering"); log_func();'

If so, you need to put quotes around the string within the select
attribute. Since the string contains double quotes, you need to use
single quotes around it within the attribute. You can then use either
single or double quotes to delimit the attribute, but whichever you
use, you must escape those quotes within the attribute value. So you
could use single quotes, as follows:

<xsl:variable name="entering_log"
  select='&apos;sprintf(log_str, "\n%s: %d: %s: %s", __FILE__,
          __LINE__, fn, "Entering"); log_func();&apos;' />

or you could use double quotes and escape the double quotes in the
attribute value, as follows:

<xsl:variable name="entering_log"
  select="'sprintf(log_str, &quot;\n%s: %d: %s: %s&quot;, __FILE__,
          __LINE__, fn, &quot;Entering&quot;); log_func();'" />

Cheers,

Jeni

---
Jeni Tennison
http://www.jenitennison.com/


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



Current Thread
Keywords
xsl