xsl-list
[Top] [All Lists]

Re: Apostrophe escaping in contains().

2003-12-02 10:40:29
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