xsl-list
[Top] [All Lists]

Re: [xsl] replacing of characters based on position

2010-11-16 13:18:32
step1:550e8400-e29b-41d4-a716-446655440000 to
550e84000e29b041d40a7160446655440000


step2:550e84000e29b041d40a7160446655440000   to
550e8400-e29b-41d4-a716-446655440000

What about this?

step1 (as described by others):
  translate('550e8400-e29b-41d4-a716-446655440000','-','0')

step2:
  <xsl:variable name="inp"
    select="'550e84000e29b041d40a7160446655440000'"/>
  <xsl:value-of select="concat(substring($inp, 1, 8),'-',
                               substring($inp,10, 4),'-',
                               substring($inp,15, 4),'-',
                               substring($inp,20, 4),'-',
                               substring($inp,25,12))"/>


$ xsltproc uuid.xsl uuid.xsl
550e8400-e29b-41d4-a716-446655440000
$


Mit besten Gruessen / Best wishes,

Hermann Stamm-Wilbrandt
Developer, XML Compiler, L3
Fixpack team lead
WebSphere DataPower SOA Appliances
----------------------------------------------------------------------
IBM Deutschland Research & Development GmbH
Vorsitzender des Aufsichtsrats: Martin Jetter
Geschaeftsfuehrung: Dirk Wittkopp
Sitz der Gesellschaft: Boeblingen
Registergericht: Amtsgericht Stuttgart, HRB 243294



From:       ram <ram_kurra(_at_)yahoo(_dot_)co(_dot_)in>
To:         xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Date:       11/16/2010 04:51 PM
Subject:    Re: [xsl] replacing of characters based on position



well, Its part of the requirement where i have replace 0 in place of '-',
so that when we get this uuid back, we will replace '0' with '-'.
         The reason of this mq is replacing - with 0 because - is not a
right hexadecimal value. before droping this uuid in mq, i want to replace
it with 0 then once i get the response from mq i want to replace 0 with -
so that i will make sure that uniqueness of uuid.

--- On Tue, 16/11/10, Imsieke, Gerrit, le-tex 
<gerrit(_dot_)imsieke(_at_)le-tex(_dot_)de>
wrote:

From: Imsieke, Gerrit, le-tex <gerrit(_dot_)imsieke(_at_)le-tex(_dot_)de>
Subject: Re: [xsl] replacing of characters based on position
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Date: Tuesday, 16 November, 2010, 11:55 AM
On 16.11.2010 07:09, ram wrote:
well, i am using xslt 2.0. i need the position based
replacement rather than regexp.
           The
reason is i want reverse back  '0' with -  later
at some point , so thaat i can guarente that same uuid is
going to be generated after reversal.

step1:550e8400-e29b-41d4-a716-446655440000 to
550e84000e29b041d40a7160446655440000


step2:550e84000e29b041d40a7160446655440000   to
550e8400-e29b-41d4-a716-446655440000

Bookkeeping (saving the positional data and later acting
upon this
separately stored information) is quite cumbersome.
If you tell us why there need to be zeros in the middle of
the process,
we might come up with an alternative solution that is less
expensive in
terms of bookkeeping, such as:
- replacing '-' with a different unique character
- wrapping the whole uuid in a newly created element (by
virtue of
xsl:analyze-string) so that its content may be treated
differently than
the surroundings
- generating an element in lieu of '-' (also using
xsl:analyze-string)
- ...

-Gerrit




--- On Tue, 16/11/10, David Carlisle<davidc(_at_)nag(_dot_)co(_dot_)uk>
wrote:

From: David Carlisle<davidc(_at_)nag(_dot_)co(_dot_)uk>
Subject: Re: [xsl] replacing of characters based
on position
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Cc: "ram"<ram_kurra(_at_)yahoo(_dot_)co(_dot_)in>
Date: Tuesday, 16 November, 2010, 4:40 AM
On 15/11/2010 22:44, ram wrote:
Hi,
           I
have xsl
variable which holds the following uuid value
(550e8400-e29b-41d4-a716-446655440000) which has
'-' at
9-14-19-24 positions.
        I want to go these
positons
9-14-19-24 and replace the characters '-' with
zero's.
         Is there
any function
such as replace(position values,character,replace
character)
available in xslt.



you should always say whether you are using xslt 1
or 2,
especially if asking about string handling,

do you actually need position based replace, (that
would be
easy using xslt 2 regexp, or only slightly more
verbose
using a mixture of substring and concat) but your
original
problem statement could be solved by
translate(.,'-','0')

David

--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: 
<mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--





--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--




--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--