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.

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

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;"/>

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? Crane Softwrights Ltd. Training tools: Comprehensive interactive XSLT/XPath 1.0/2.0 video Video lesson: Video overview: G. Ken Holman mailto:gkholman@xxxxxxxxxxxxxxxxxxxx Male Cancer Awareness Nov'07 Legal business disclaimers:

Current Thread