Re: [xsl] Apostrophe escaping in contains().

Subject: Re: [xsl] Apostrophe escaping in contains().
From: "J.Pietschmann" <j3322ptm@xxxxxxxx>
Date: Tue, 02 Dec 2003 18:40:29 +0100
Ben Trafford wrote:
I'm trying to get a test using contains() to look for an apostrophe. My XSLT processor (Saxon) keeps telling me that I need whitespace between attributes.

The fragment I'm working with looks like this:

<xsl:when test="contains($text, '"&apos;"')> some stuff </xsl:when>

I've searched the FAQs, and they report that I'm escaping the apostrophe correctly.

Well, not exactly: for the parser, the attribute value ends after the double quote before the escaped &apos; Do you really want to look for the substring "'" (double quote - apostrophe - double quote)? If so, try <xsl:variable name="apos" select='"&apos;"'/> ... test="contains($text,concat('&quot;',$apos,'&quot;'))" In the variable's select: the first apostrophe is the XML attribute value quote, the double quote starts an XPath string, the &apos; is the content of the string, then everything is closed.

J.Pietschmann



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


Current Thread