This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
Str:tokenize modification to change the <token> tag
- From: Naresh Kumar Agarwal <nagarwal at helixense dot com>
- To: XSL-List at lists dot mulberrytech dot com
- Date: Tue, 16 Apr 2002 21:12:17 +0800
- Subject: [xsl] Str:tokenize modification to change the <token> tag
- Organization: HeliXense Pte Ltd
- Reply-to: xsl-list at lists dot mulberrytech dot com
Hi,
I'm new to XSL and need to use XSLT to tokenize, like in Java.
I used str:tokenize and it worked
(http://www.exslt.org/str/functions/tokenize/)
I need to split
<description> I am doing good<description>
to
<desc>I<desc>
<desc>am<desc>
<desc>doing<desc>
<desc>good<desc>
Later on, I need to split,
<function>a,b,c,d,e<function>
to
<func>a<func>
<func>b<func>
<func>c<func>
<func>d<func>
<func>e<func>
Using str:tokenize, I'm getting the result as
<token>I<token>
<token>am<token>
<token>doing<token>
<token>good<token>
I want to make this "<token>" tag configurable, so that str:tokenize can take
it as a parameter.
But whenever I try to modify the code (see changes made below) of
str:tokenize, I get an illegal character error.
How can I modify this <token> tag and pass it as a parameter (like the string
and delimiter)?
Any help would be greatly appreciated. I need it urgently.
Thanks so much,
Naresh.
<xsl:template name="_tokenize-delimiters">
<xsl:param name="string" />
<xsl:param name="delimiters" />
<!---Begin: my modification-->
<xsl:param name="tokentag" select="token" />
<xsl:variable name="start_tag" select="concat('<', $tokentag,'>')" /)
<xsl:variable name="end_tag" select="concat('</',$tokentag,'>')" /)
<!--End: my modification-->
<xsl:variable name="delimiter" select="substring($delimiters, 1, 1)" />
<xsl:choose>
<xsl:when test="not($delimiter)">
<!-- commented by me -->
<!--<token><xsl:value-of select="$string" /></token>-->
<!-- added by me -->
<xsl:value-of select="$start_tag" /><xsl:value-of select="$string"
/><xsl:value-of select="$end_tag" />
</xsl:when>
<xsl:when test="contains($string, $delimiter)">
<xsl:if test="not(starts-with($string, $delimiter))">
<xsl:call-template name="_tokenize-delimiters">
<xsl:with-param name="string" select="substring-before($string,
$delimiter)" />
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list