[XSL-LIST Mailing List Archive Home] [By Thread] [By Date]

RE: [xsl] Testing the Last Character of a String


Subject: RE: [xsl] Testing the Last Character of a String
From: Michele R Combs <mrrothen@xxxxxxx>
Date: Thu, 1 Aug 2013 15:14:26 +0000

Since the test starts with "archdesc/..." I assume it's getting run while at
the root level (ead), is that correct?   If so, then I'm pretty sure you just
need single quotes around the period.  Also you don't need the 1.

<xsl:when test="substring(archdesc/did/unittitle/text(),
string-length(archdesc/did/unittitle))='.'">


If you're going to be doing other things with this unittitle, such as
outputting it or concatenating it, you might save some space by sticking it in
a variable:

<xsl:variable name="collectionTitle" select="
archdesc/did/unittitle/text()"/>
...
<xsl:when test="substring($collectionTitle,
string-length($collectionTitle))='.'">
...
<xsl:value-of select="$collectionTitle"/>

Michele

-----Original Message-----
From: Nathan Tallman [mailto:ntallman@xxxxxxxxx]
Sent: Thursday, August 01, 2013 10:56 AM
To: xsl-list
Subject: [xsl] Testing the Last Character of a String

I'd like to test the last character in a node text-string. If it's a period,
then insert the value and a space. If it's not a period, then insert the
value, a period., and a space. I think I've gotten most of the code right, but
don't have it quite right, as it's not working. Any tips?

Thanks,
Nathan

<xsl:choose>
    <xsl:when test="substring(archdesc/did/unittitle/text(),
string-length(archdesc/did/unittitle), 1)=.">
        <xsl:value-of select="normalize-space(archdesc/did/unittitle)"/>
        <xsl:text>&#160;</xsl:text>
    </xsl:when>
    <xsl:otherwise>
        <xsl:value-of select="normalize-space(archdesc/did/unittitle)"/>
        <xsl:text>.&#160;</xsl:text>
    </xsl:otherwise>
</xsl:choose>


Current Thread