This is the mail archive of the xsl-list@mulberrytech.com mailing list .


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: xsl string comparison fails why?


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(.,'&#x9;&#xA;&#xD;&#x20;','')=$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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]