W3C home > Mailing lists > Public > www-xsl-fo@w3.org > March 2002

RE: Splitting a stirng

From: Brenda Bell <bbell@juicesoftware.com>
Date: Wed, 20 Mar 2002 13:26:34 -0500
Message-ID: <846B0B02E1B78B49B678EDCC00EB29627468EB@mail01.ent.juice.com>
To: www-xsl-fo@w3.org
I did something similar which works.  My problem is that the original string
has 11 items... so I have to do this 11 times.  The first one is easy, but
the second iteration really needs to eliminate the "used-up" part of the
string before it does another substring-before.  I'm using variables and
doing it manually line by line, so it's very ugly.

-----Original Message-----
From: Stephen Clarke [mailto:any@longusername.worldonline.co.uk]
Sent: Wednesday, March 20, 2002 1:18 PM
To: Brenda Bell; www-xsl-fo@w3.org
Subject: Re: Splitting a stirng


Hi Brenda,

----- Original Message -----
From: "Brenda Bell" <bbell@juicesoftware.com>
To: <www-xsl-fo@w3.org>
Sent: Wednesday, March 20, 2002 4:02 PM
Subject: Splitting a stirng


> I have an XML document with an element whose content is a string
containing
> "fields" delimited by semi-colons.  Example:
>
> <PACKEDINFO>123;ABC;0;X</PACKEDINFO>
>
> I want to transform this element into something that looks like this:
>
> <UNPACKEDINFO>
> <INFO1>123</INFO1>
> <INFO2>ABC</INFO2>
> <INFO3>0</INFO3>
> <INFO4>X</INFO4>
> </UNPACKEDINFO>
>
> Can I do this with XSL?  I'm familiar with the substring functions and
while
> I've never used them, I've read the documentation on the param and
variable
> elements.
>
> If I were doing this in a programming language like VB, I'd set a variable
> to the contents of <PACKEDINFO>, pop off the part before the first
> semi-colon, create my new element and remove the text up to and including
> the first semi-colon from the string setting me up for my next iteration.
>
> Any comments on how I can do this with XSL would be greatly appreciated.
I
> guess my biggest question is whether I should use a param or variable --
I'm
> having difficulty distinguishing between them -- and whether I can change
a
> param or variable's value by simply declaring it again.  I'm very
confused.
>
>
>

funny , i was just reading about substring today.

maybe this will give you some clue. Have you tried anything like this?


123 = substring-before( /top/node, ";" )
ABC = substring-before( substring-after( /top/padkedinfo, ";" ), ";" )

eg.
<unpackedinfo>
 <info1><xsl:value-of select="substring-before( /top/packedinfo,
';' )"/><info1>

...

could be wrong i'm just a beginner.
--
Best,
Steve
Received on Wednesday, 20 March 2002 13:40:13 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Wednesday, 3 October 2007 16:06:09 GMT