xsl-list
[Top] [All Lists]

Re: [xsl] identifying series of numbers in text strings

2008-07-27 11:47:42
Do you use an XSLT 1.0 processor that supports EXSLT? Then you could use 
http://www.exslt.org/regexp/functions/match/index.html.
Firefox 3.0 has support for that match function. With IE and MSXML you can 
use the implementation provided at the exslt.org site.




EXSLT is not really needed:

<xsl:stylesheet version="1.0"
 xmlns:xsl="http://www.w3.org/1999/XSL/Transform";>

        <xsl:template match="date">
          <xsl:variable name="vUnits" select=
           "translate(., '0123456789', '1111111111')"
           />
         <xsl:value-of select=
          "contains(substring-after($vUnits, '1111'), '1111')"
          />
        </xsl:template>
</xsl:stylesheet>

Applied on this xml document:

<t>
        <date>23 July 2001-April 2006</date>
        <date>July 1996</date>
        <date>unknown</date>
</t>

The result is:

<?xml version="1.0" encoding="utf-8"?>
        true
        false
        false



--
Cheers,
Dimitre Novatchev
---------------------------------------
Truly great madness cannot be achieved without significant intelligence.
---------------------------------------
To invent, you need a good imagination and a pile of junk
-------------------------------------
Never fight an inanimate object
-------------------------------------
You've achieved success in your field when you don't know whether what
you're doing is work or play




On Sun, Jul 27, 2008 at 10:01 AM, Martin Honnen 
<Martin(_dot_)Honnen(_at_)gmx(_dot_)de> wrote:

Joyce Celeste Chapman wrote:

Using XSL 1.0, is there a way I can search the contents of an element to 
find series of 4-digit numbers? Then if there are two sets of 4-digit 
numbers, I would like to select those values in order (I'll be outputting 
them somewhere else as a date span), if there is only one 4-digit set I'll 
need to output that a different way. Example of XML below. Thanks to all in 
advance for the help!

<date>23 July 2001-April 2006</date>
<date>July 1996</date>
<date>unknown</date>

Do you use an XSLT 1.0 processor that supports EXSLT? Then you could use 
http://www.exslt.org/regexp/functions/match/index.html.
Firefox 3.0 has support for that match function. With IE and MSXML you can 
use the implementation provided at the exslt.org site.


--

       Martin Honnen
       http://JavaScript.FAQTs.com/

--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: 
<mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--


--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--

<Prev in Thread] Current Thread [Next in Thread>