Re: [xsl] temporarily enable a character-map

Subject: Re: [xsl] temporarily enable a character-map
From: "G. Ken Holman" <gkholman@xxxxxxxxxxxxxxxxxxxx>
Date: Mon, 05 Oct 2009 08:52:29 -0400
At 2009-10-05 13:50 +0100, Andy Chambers wrote:
Is there a way to temporarily enable an XSLT2 character-map.

No ... it is a global property of the serialization.


My
use-case is generating
python code which will contain string literals.  Some of the code I'm
generating looks like
this...

Check_Range_IADAS001_0 = make_range_check("Check_Range_IADAS001_0",
"IADAS001", "IGQS572", GT, "10", "Max = 10")

This particular line is fine but the string "Max = 10" is coming
directly from the input document
and it might contain things which need to be escaped in a python
literal (e.g. ", ' etc).  I thought
I could use character-maps but my understanding is that you have to
apply one to an entire final
result tree so if  I were to have....

  <xsl:character-map name="python-map">
        <xsl:output-character character="&#34;" string="\&#34;"/>
  </xsl:character-map>

It would escape all instances of "&#34;" in the output which is not what I want.

Am I trying to use the wrong tool here?

At the time you are writing your strings you could use:


<xsl:value-of select="replace(.,'&#34;','\\&#34;')"/>

in order to localize the changes to only that string that you want.

I hope this helps.

. . . . . . . . . . Ken


-- Upcoming: hands-on code list, UBL, XSLT, XQuery and XSL-FO classes in Copenhagen Denmark and Washington DC USA, October/November 2009 Interested in other classes? http://www.CraneSoftwrights.com/s/i/ Crane Softwrights Ltd. http://www.CraneSoftwrights.com/s/ Training tools: Comprehensive interactive XSLT/XPath 1.0/2.0 video Video lesson: http://www.youtube.com/watch?v=PrNjJCh7Ppg&fmt=18 Video overview: http://www.youtube.com/watch?v=VTiodiij6gE&fmt=18 G. Ken Holman mailto:gkholman@xxxxxxxxxxxxxxxxxxxx Male Cancer Awareness Nov'07 http://www.CraneSoftwrights.com/s/bc Legal business disclaimers: http://www.CraneSoftwrights.com/legal

Current Thread