Subject: Re: [xsl] Apostrophe escaping in contains().|
From: "J.Pietschmann" <j3322ptm@xxxxxxxx>
Date: Tue, 02 Dec 2003 18:40:29 +0100
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, '"'"')> 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 ' Do you really want to look for the substring "'" (double quote - apostrophe - double quote)? If so, try <xsl:variable name="apos" select='"'"'/> ... test="contains($text,concat('"',$apos,'"'))" In the variable's select: the first apostrophe is the XML attribute value quote, the double quote starts an XPath string, the ' is the content of the string, then everything is closed.