RE: [xsl] string question

Subject: RE: [xsl] string question
From: "David Santamauro" <david.santamauro@xxxxxxxx>
Date: Thu, 22 Feb 2001 01:35:51 -0500
thanks for the clues... unfortunately, everything is variable (length and
punctuation).

I'll try your and Michael's solution and report back on the progess. Once
again, thanks.

David

-----Original Message-----
From: Jeni Tennison [mailto:mail@xxxxxxxxxxxxxxxx]
Sent: Wednesday, February 21, 2001 08:10
To: David Santamauro
Cc: Xsl-List
Subject: Re: [xsl] string question


Hi David,

>>From this xml (those IP persons might recognize this):
> <b310>08/773,384</b310>
>
> I need:
> PR_08/773,384 PR_08 PR_773 PR_384
>
> Basically, all punctuation (and spaces) are "segment" delimiters. Starting
> with entire content, each segment is then prefixed with PR_. Any help
would
> be greatly appreciated.

Assuming that your strings are always of the form:

  DD/DDD,DDD

(where D is a digit) you could use:

PR_<xsl:value-of select="b310" />
PR_<xsl:value-of select="substring(b310, 1, 2)" />
PR_<xsl:value-of select="substring(b310, 4, 3)" />
PR_<xsl:value-of select="substring(b310, 8, 3)" />

If the lengths of the different parts of the strings can vary, then
you need to use substring-before() and substring-after():

PR_<xsl:value-of select="b310" />
PR_<xsl:value-of select="substring-before(b310, '/')" />
PR_<xsl:value-of select="substring-before(
                           substring-after(b310, '/'), ',')" />
PR_<xsl:value-of select="substring-after(
                           substring-after(b310, '/'), ',')" />

If there can be more parts to the string, then you need a recursive
solution.  If that's the case, then can you write a general pattern
for the string, and we'll try to work something out?

I hope that helps,

Jeni

---
Jeni Tennison
http://www.jenitennison.com/



 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


Current Thread