RE: [xsl] String matching without regex

Subject: RE: [xsl] String matching without regex
From: Marcel Stör <marcel@xxxxxxxxxxxxxx>
Date: Fri, 28 Jan 2005 23:52:05 +0100
Marcel Stvr <mailto:marcel@xxxxxxxxxxxxxx> wrote:
> Hi all,
>
> For XML to HTML transformation I'd like to add the HTML <nobr> tag
> for each table cell that contains currency values (or <td nowrap> as
> an alternative). In my application currency values are values that
> always end with a . followed by two digits.
>
> [Test data]
> <?xml version="1.0" encoding="UTF-8"?>
> <test>
>  <value>Hello World!</value>
>  <value>CHF -1'125.25</value>
>  <value>1'125.25</value>
>  <value>125.25</value>
>  <value>Hello World. Hello World. Hello World. Hello World. Hello
> World. Hello World.</value>
> </test>
>
> Using modern XSLT/XPath I could achieve this with the following XSL
> using regex:
> <?xml version="1.0" encoding="UTF-8"?>
> <xsl:stylesheet version="1.0"
> xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
> xmlns:fo="http://www.w3.org/1999/XSL/Format";>
>  <xsl:template match="test">
>   <table>
>    <tr>
>        <xsl:for-each select="value">
>      <td>
>       <xsl:choose>
>        <xsl:when test='matches(., ".*\.\d\d")'>
>         <nobr>
>          <xsl:value-of select="."/>
>         </nobr>
>        </xsl:when>
>        <xsl:otherwise>
>         <xsl:value-of select="."/>
>        </xsl:otherwise>
>       </xsl:choose>
>      </td>
>     </xsl:for-each>
>    </tr>
>   </table>
>  </xsl:template>
> </xsl:stylesheet>
>
>
> How could I achieve the same using old-fashioned string functions
> such as substring and the like?

This is a great list! Lots of posts and lots of helpful replies.

I only wonder why my own post is the only unanswered posts for several days.
Did I not describe the problem in a way that should be easy to follow for
everyone? Is the problem a too trivial one? Or is it too complicated; rather
not I would guess... Did I out of lack of experience break any of the rules
of this mailing list?

I'm just wondering...
Marcel

Current Thread