This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
Re: xsl string comparison fails why?
- From: Mike Brown <mike at skew dot org>
- To: xsl-list at lists dot mulberrytech dot com
- Date: Wed, 25 Sep 2002 09:50:09 -0600 (MDT)
- Subject: Re: [xsl] xsl string comparison fails why?
- Reply-to: xsl-list at lists dot mulberrytech dot com
Andrew Welch wrote:
> The simplest solution that fits your stylesheet is to translate() out
> any whitespace from the text() content of the <state> element before it
> gets compared to the parameter:
>
> <xsl:for-each select="admissions/state/text()">
> <xsl:if test="translate(.,'	

 ','')=$state">
> <xsl:value-of select="."/>
> </xsl:if>
> </xsl:for-each>
No, the simplest solution is to use normalize-space(), which will remove
leading and trailing spaces, but won't take the space out of "Rhode Island".
And the for-each is not strictly needed.
<xsl:value-of select="admissions/state[normalize-space(text())=$state]"/>
will give him what he asked for, although I suspect that what he *wants*
is something like
<xsl:for-each select="admissions/state[normalize-space(text())=$state]"/>
<a href="{statelink/@href}">
<xsl:value-of select="statelink"/>
</a>
</xsl:for-each>
where the for-each is just shifting the context to make the subsequent
statelink references easier (you could use xsl:variable and $foo/statelink if
you wanted)
- Mike
____________________________________________________________________________
mike j. brown | xml/xslt: http://skew.org/xml/
denver/boulder, colorado, usa | resume: http://skew.org/~mike/resume/
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list