xsl-list
[Top] [All Lists]

Re: replace a word

2005-12-12 22:44:49
This is correct. sub is not an element, it will therefore only find and replace once.

What you need is a recursive call that will keep recursing till there are no more instances of {sub}.

There are a number of examples of similar situations on the mailing list.

Cheers.

Kamal.

T Uma Shankari wrote:


Greetings to all,

  I have to find a word and replace that word with another word.

for example if my xml file is like this means

<question page="6" Queswav="" ChooseType="" id="0" Qno="533" chapter="chapter1" >
  <stmt1 mgif1="" mgif="" Qno="533" misc="" >statement1</stmt1>
  <opt ptno="1" mgif1="" mgif="" " misc=""

{sub}2{/sub}Option1{sub}5{/sub}</opt>

  <opt ptno="1" mgif1="" mgif="" " misc="" >Option2</opt>
  <opt ptno="1" mgif1="" mgif="" " misc="" >Option3</opt>
  <opt ptno="1" mgif1="" mgif="" " misc="" >Option4</opt>
 </question>


i need to find the {sub} and replace it with {/sub} so i have written this code.

xsl:template match="question" name="main">
 <xsl:for-each select="self::question">
           <xsl:variable name="stringques1">
              <h1><b><xsl:value-of select="opt" /></b></h1>
            </xsl:variable>

<xsl:variable name="stringques2">
 <xsl:choose>
 <xsl:when test="(contains($stringques1,'{sub}'))">
 <xsl:value-of select="substring-before($stringques1,'{sub}')"/>
   <sub>
<xsl:value-of select="substring-before(substring-after($stringques1,'{sub}'),'{/sub}')"/>
   </sub>
  <xsl:value-of select="substring-after($stringques1,'{/sup}')" />
      </xsl:when>
       <xsl:otherwise>
        <xsl:value-of select="$stringques1"/>
      </xsl:otherwise>
     </xsl:choose>
    </xsl:variable>
 </xsl:for-each>
  </xsl:template>
 </xsl:stylesheet>


It is replacing the first occurance not the oncoming occurance. Can anyone please tell where i am wrong?

regards
uma


--~------------------------------------------------------------------
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>
--~--



<Prev in Thread] Current Thread [Next in Thread>