[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

Re: escaping quotes in a translate()

Subject: Re: escaping quotes in a translate()
From: Wendell Piez <wapiez@xxxxxxxxxxxxxxxx>
Date: Fri, 26 Mar 2004 17:34:31 -0500
xsl translate apos
Dan,

The trick is to mask the troublesome characters in such a way that once the XML parser gets through with them, they still make XPath.

A character reference masks the literal from the XML syntax so it can be parsed, but parsing turns it into the corresponding character, so it can still be botched down in the XPath.

The usual workaround (and easiest to understand) is to sneak them in as variables. Given variable references in lieu of the characters, the only quotes the XPath parser sees is the delimiters it expects.

So try

<xsl:variable name="apos" select="'&apos;'"/>
<xsl:variable name="quot" select="'&quot;'"/>

and then

translate( $sourceString,
           '&#x2019;&#x201D;&#x201C;&#x2018;',
            concat($apos,$quot,$apos,$quot) ) )

I hope that helps,
Wendell

At 05:09 PM 3/26/2004, you wrote:
I would like to use the translate function to convert curly quotes to their ASCII counter part, but I'm having troubles getting them accepted. I've always thought that you use double, single then entity references or single double then entity references to deal with nested quoting issues but that isn't working here.

Here is what I want to use:

<xsl:value-of select="normalize-space(
                        translate( $sourceString,
                                '&#x2019;&#x201D;&#x201C;&#x2018;',
                                '&apos;&quot;&apos;&quot;'
                                )
                        )" />

I get errors about unmatched quotes if I change the order or in this case "Expected a )"

I don't just want to delete these characters, I would like to replace them with ASCII ok values.


..dan --------------------------------------------------------------------------- Danny Vint http://www.dvint.com


======================================================================
Wendell Piez                            mailto:wapiez@xxxxxxxxxxxxxxxx
Mulberry Technologies, Inc.                http://www.mulberrytech.com
17 West Jefferson Street                    Direct Phone: 301/315-9635
Suite 207                                          Phone: 301/315-9631
Rockville, MD  20850                                 Fax: 301/315-8285
----------------------------------------------------------------------
  Mulberry Technologies: A Consultancy Specializing in SGML and XML
======================================================================

Current Thread

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.