Re: [xsl] replacing of characters based on position

Subject: Re: [xsl] replacing of characters based on position
From: ram <ram_kurra@xxxxxxxxxxx>
Date: Wed, 17 Nov 2010 01:28:50 +0530 (IST)
 step1:550e8400-e29b-41d4-a716-446655440000 to
550e84000e29b041d40a7160446655440000
      This one we can fix by writing the
following  xsl in xslt 1.0


<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet  
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
version="1.0"> 
  <xsl:template match="/">
  <xsl:variable name="inputtext"
select="/Number" />
  <xsl:variable name="searchContent" select="'-'"/>
<xsl:variable name="replacetext" select="'0'"/>
  <xsl:message>
         input
<xsl:value-of select="$inputtext"/>
      </xsl:message>
        <xsl:message>
search <xsl:value-of select="$searchContent"/>
      </xsl:message>
<xsl:message>
         replace <xsl:value-of select="$replacetext"/>
</xsl:message>
      
    <xsl:call-template name="search-and-replace" >
<xsl:with-param name="input" select="$inputtext" />
     <xsl:with-param
name="search-string" select="$searchContent" />
     <xsl:with-param
name="replace-string" select="$replacetext" />
      
    </xsl:call-template>
</xsl:template>
 <xsl:template name="search-and-replace">
  
   <xsl:param
name="input" />
   <xsl:param name="search-string"/>
   <xsl:param
name="replace-string"/>
   
   <xsl:choose>
    <xsl:when test="$search-string
and 
                    contains($input,$search-string)">
<xsl:message> inside when
        </xsl:message>
<xsl:value-of
           select="substring-before($input,$search-string)"/>
<xsl:value-of select="$replace-string"/>
       <xsl:call-template
name="search-and-replace">
         <xsl:with-param name="input"
select="substring-after($input,$search-string)"/>
         <xsl:with-param
name="search-string"
               select="$search-string"/>
<xsl:with-param name="replace-string"
select="$replace-string"/>
       </xsl:call-template>
    </xsl:when>
<xsl:otherwise>
      <xsl:value-of select="$input"/>
    </xsl:otherwise>
</xsl:choose>
  </xsl:template>                
 <!--  <xsl:template
match="text">
   <xsl:call-template name="search-and-replace">
<xsl:with-param name="input" select="text()" />
     <xsl:with-param
name="search-string" select="'-'" />
     <xsl:with-param
name="replace-string" select="'0'" />
   </xsl:call-template>
</xsl:template>-->
</xsl:stylesheet>
step2:550e84000e29b041d40a7160446655440000   to
550e8400-e29b-41d4-a716-446655440000
         how can i do this based on
position number/index[9]


--- On Tue, 16/11/10, ram <ram_kurra@xxxxxxxxxxx>
wrote:

> From: ram <ram_kurra@xxxxxxxxxxx>
> Subject: Re: [xsl] replacing of
characters based on position
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Date:
Tuesday, 16 November, 2010, 9:21 PM
> 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
> > 
> >
>
--~------------------------------------------------------------------
> >
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@xxxxxxxxxxxxxxxxxxxxxx>
> > --~--
> > 
> > 
> 
>
> 
> --~------------------------------------------------------------------
>
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@xxxxxxxxxxxxxxxxxxxxxx>
> --~--

Current Thread