|
[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: breaking string into substrings or arrays (XSLT 1.
Hi Dave,
Please, note that the str-split-to-words template generally handles *a
set* of delimiters, not just one delim character.
Therefore, one can set the pDelimiters parameters say to:
" ,;?\!"
and it will retrieve words that are delimited by any pair of these.
On the other side, if I understand well the code of the tokens
template provided by you, it checks always for a single delimiter
string.
Cheers,
Dimitre.
On 4/20/05, Pawson, David <David.Pawson@xxxxxxxxxxx> wrote:
> Following up on a converstation I had with Jarno and Dimitre.
> This is a New York version of tokenize. (So good we did it twice)
>
> General purpose tokenize, for known delimiters.
>
> <?xml version="1.0" encoding="UTF-8"?>
> <xsl:stylesheet version="1.0"
> xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
> xmlns:f="http://fxsl.sf.net/"
> exclude-result-prefixes="f">
>
> <xsl:import href="/sgml/fxsl/strSplit-to-Words.xsl"/>
> <xsl:output method="xml"
> encoding="UTF-8" indent="yes"/>
>
> <xsl:template match="/vs">
> <xsl:value-of select="system-property('xsl:product-version')" />
>
> <xsl:apply-templates />
> </xsl:template>
>
> <xsl:variable name="xxx" select="//fld[1]"/>
>
> <xsl:template match="line">
> <xsl:call-template name="tokens">
> <xsl:with-param name="str" select="@event"/>
> <xsl:with-param name="splitString" select="' '"/>
> </xsl:call-template>
> And using fxsl
> <xsl:call-template name="str-split-to-words">
> <xsl:with-param name="pStr" select="@event"/>
> <xsl:with-param name="pDelimiters" select="' '"/>
> </xsl:call-template>
> </xsl:template>
>
> <xsl:template name="tokens">
> <xsl:param name="str" select="."/>
> <xsl:param name="splitString" select="' '"/>
> <xsl:choose>
> <xsl:when test="contains($str,$splitString)">
> <token>
> <xsl:value-of select="substring-before($str,$splitString)"/>
> </token>
> <xsl:call-template name="tokens">
> <xsl:with-param name="str"
select="substring-after($str,$splitString)"/>
> <xsl:with-param name="splitString" select="$splitString"/>
> </xsl:call-template>
> </xsl:when>
> <xsl:otherwise>
> <token><xsl:value-of select="$str"/></token>
> </xsl:otherwise>
> </xsl:choose>
> </xsl:template>
>
> <xsl:template match="vs">
> <xsl:apply-templates/>
> </xsl:template>
>
> </xsl:stylesheet>
>
> Input
>
> <?xml version="1.0" ?>
> <vs>
> <line event="x y x">
> </line>
>
> </vs>
>
> output
>
> c:\sgml>type op.xml
> <?xml version="1.0" encoding="UTF-8"?>
>
> <token>x</token>
> <token>y</token>
> <token>x</token>
> And using fxsl
> <word>x</word>
> <word>y</word>
> <word>x</word>
>
> HTH DaveP
>
> --
> DISCLAIMER:
>
> NOTICE: The information contained in this email and any attachments is
> confidential and may be privileged. If you are not the intended
> recipient you should not use, disclose, distribute or copy any of the
> content of it or of any attachment; you are requested to notify the
> sender immediately of your receipt of the email and then to delete it
> and any attachments from your system.
>
> RNIB endeavours to ensure that emails and any attachments generated by
> its staff are free from viruses or other contaminants. However, it
> cannot accept any responsibility for any such which are transmitted.
> We therefore recommend you scan all attachments.
>
> Please note that the statements and views expressed in this email and
> any attachments are those of the author and do not necessarily represent
> those of RNIB.
>
> RNIB Registered Charity Number: 226227
>
> Website: http://www.rnib.org.uk
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|

Cart








