This is the mail archive of the xsl-list@mulberrytech.com mailing list .


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: hoe to use "(" within a variable


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]