[XSL-LIST Mailing List Archive Home] [By Thread] [By Date]

Re: [xsl] replacing of characters based on position


Subject: Re: [xsl] replacing of characters based on position
From: Hermann Stamm-Wilbrandt <STAMMW@xxxxxxxxxx>
Date: Tue, 16 Nov 2010 20:18:18 +0100

> > 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@xxxxxxxxxxx>
To:         xsl-list@xxxxxxxxxxxxxxxxxxxxxx
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.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
Keywords