Subject: Re: translate array delimiters in XSLT
From: JBryant@xxxxxxxxx
Date: Fri, 18 Mar 2005 11:18:07 -0600
|
I was thinking that, too, Wendell, but some quick testing revealed a
problem. Because translate substitutes only one character, the semi-colon
is replaced with a comma but no space. To get a space after each comma
requires a different approach. I suppose a recursive template that uses
substring functions would be the 1.0 solution. I think the 2.0 solution
would be to tokenize the input string and then reassemble with a for-each
on the tokens, adding the comma and space along the way.
Jay Bryant
Bryant Communication Services
(presently consulting at Synergistic Solution Technologies)
Wendell Piez <wapiez@xxxxxxxxxxxxxxxx>
03/18/2005 10:43 AM
Please respond to
xsl-list@xxxxxxxxxxxxxxxxxxxxxx
To
xsl-list@xxxxxxxxxxxxxxxxxxxxxx
cc
Subject
Re: translate array delimiters in XSLT
Cas,
At 11:36 AM 3/18/2005, you wrote:
><xsl:for-each select="translate(@software,';',', ')">
> <xsl:value-of select="."/>
></xsl:for-each>
You want
<xsl:value-of select="translate(@software,';',', ')"/>
The translate() function operates on strings and returns a string. Since
for-each iterates over a set of nodes, it requires a node-set to be
returned by the expression in its @select: hence the error when you give
it
a string.
Cheers,
Wendell
======================================================================
Wendell Piez mailto:wapiez@xxxxxxxxxxxxxxxx
Mulberry Technologies, Inc. http://www.mulberrytech.com
17 West Jefferson Street Direct Phone: 301/315-9635
Suite 207 Phone: 301/315-9631
Rockville, MD 20850 Fax: 301/315-8285
----------------------------------------------------------------------
Mulberry Technologies: A Consultancy Specializing in SGML and XML
======================================================================
|