xsl-list
[Top] [All Lists]

Re: [xsl] translating and commenting punctuation [XSLT1.0]

2011-02-24 06:29:55
Thanks Martin. How can I forget that. Thanks a ton.





Martin Honnen <Martin(_dot_)Honnen(_at_)gmx(_dot_)de> 
02/24/11 05:49 PM
Please respond to
xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com


To
xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
cc

Subject
Re: [xsl] translating and commenting punctuation [XSLT1.0]






pankaj(_dot_)c(_at_)thomsondigital(_dot_)com wrote:
Hello everybody,

I am trying to translate "," in text to new line while keeping a copy of
it in comment. Some thing like below:

XML
===

<mytext>xxxx, yyyy, zzzzz, ttttt</mytext>

Output Required
==========

<mytext>xxxx<!--,-->
  yyyy<!--,-->
  zzzzz<!--,-->
  ttttt</mytext>

Your subject says XSLT 1.0 so here is an XSLT 1.0 approach:

<xsl:stylesheet
   xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
   version="1.0">

   <xsl:template name="replace">
     <xsl:param name="text"/>
     <xsl:param name="char" select="','"/>
     <xsl:choose>
       <xsl:when test="not(contains($text, $char))">
         <xsl:value-of select="$text"/>
       </xsl:when>
       <xsl:otherwise>
         <xsl:value-of select="substring-before($text, $char)"/>
         <xsl:comment>
           <xsl:value-of select="$char"/>
         </xsl:comment>
         <xsl:text>&#10;</xsl:text>
         <xsl:call-template name="replace">
           <xsl:with-param name="text" select="substring-after($text, 
$char)"/>
           <xsl:with-param name="char" select="$char"/>
         </xsl:call-template>
       </xsl:otherwise>
     </xsl:choose>
   </xsl:template>

   <xsl:template match="mytext">
     <xsl:copy>
       <xsl:call-template name="replace">
         <xsl:with-param name="text" select="."/>
       </xsl:call-template>
     </xsl:copy>
   </xsl:template>

</xsl:stylesheet>
-- 

                 Martin Honnen
                 http://msmvps.com/blogs/martin_honnen/

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