This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
Re: How to search for <, >, etc. in a string?
- To: xsl-list at mulberrytech dot com
- Subject: Re: How to search for <, >, etc. in a string?
- From: David Carlisle <davidc at nag dot co dot uk>
- Date: Wed, 27 Sep 2000 15:23:48 GMT
- References: <DB8AFFD38A30D311BA6D0090276DC8C003759F76@merc09.us.sas.com>
- Reply-To: xsl-list at mulberrytech dot com
> I have XML that contains some CDATA:
>
> <string>
> <![CDATA[<u>Link containing a & character</u>]]>
> </string>
which is the same input tree to xsl as
<string>
<u>Link containing a & character</u>
</string>
> I'd like to strip out the <u> and </u>, but only if they exist in the CDATA. > To that end, I've used the string functions. An example of this is:
>
> <xsl:when test="starts-with($linkTextUnStripped, '<u>')">
> <xsl:value-of select="substring($linkTextUnStripped, 4)" />
> </xsl:when>
You didn't specify how you set the variable linkTextUnStripped
but unless it was defined via normalise-space() then
"4" is unlikely to be the right number, and starts-with is not going to
be true. As the fist four characters are
   
The less than (<) is the 10th character in the string, unless I mis
counted.
Why not use
<xsl:when test="contains($linkTextUnStripped, '<u>')">
<xsl:value-of select="
substring-before(substring-after(, '<u>'), '</u>') "/>
</xsl:when>
David
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list