Subject: Re: [xsl] breaking string into substrings or arrays (XSLT 1.0 solution) tokenize From: Dimitre Novatchev <dnovatchev@xxxxxxxxx> Date: Wed, 20 Apr 2005 18:11:53 +1000 |
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
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
RE: [xsl] breaking string into subs, Pawson, David | Thread | [xsl] strSplit-to-Words.xsl, Ali Choumane |
Re: [xsl] xsl:for-each...iteration , Paul Coletti | Date | RE: [xsl] breaking string into subs, Pawson, David |
Month |