Re: [xsl] replacing of characters based on position

Subject: Re: [xsl] replacing of characters based on position
From: Brandon Ibach <brandon.ibach@xxxxxxxxxxxxxxxxxxx>
Date: Tue, 16 Nov 2010 14:59:14 -0500
It sounds like the real requirement is "convert the UUID string to a
string containing only valid hexadecimal characters without losing
information, uniqueness or reversibility".

If so, then why not just drop the '-' characters with translate(.,
'-', '') and put them back in fixed positions later with either
substring (XSLT 1.0) or regex (XSLT 2.0) functions?

-Brandon :)


On Tue, Nov 16, 2010 at 10:51 AM, ram <ram_kurra@xxxxxxxxxxx> wrote:
> 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.imsieke@xxxxxxxxx>
wrote:
>
>> From: Imsieke, Gerrit, le-tex <gerrit.imsieke@xxxxxxxxx>
>> Subject: Re: [xsl] replacing of characters based on position
>> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
>> 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@xxxxxxxxx>
>> wrote:
>> >
>> >> From: David Carlisle<davidc@xxxxxxxxx>
>> >> Subject: Re: [xsl] replacing of characters based
>> on position
>> >> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
>> >> Cc: "ram"<ram_kurra@xxxxxxxxxxx>
>> >> 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

Current Thread