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

Subject: Re: [xsl] translating and commenting punctuation [XSLT1.0]
From: pankaj.c@xxxxxxxxxxxxxxxxxx
Date: Thu, 24 Feb 2011 17:53:41 +0530
Thanks Michael but I am using 1.0. Definitely it would have much easier in 
2.0. :-(





Michael Kay <mike@xxxxxxxxxxxx> 
02/24/11 05:46 PM
Please respond to
xsl-list@xxxxxxxxxxxxxxxxxxxxxx


To
xsl-list@xxxxxxxxxxxxxxxxxxxxxx
cc

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






On 24/02/2011 11:59, pankaj.c@xxxxxxxxxxxxxxxxxx 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>

Try

<xsl:template match="mytext">
<xsl:copy>
<xsl:analyze-string select=",">
<xsl:matching-substring>
<xsl:comment><xsl:value-of select="."/></xsl:comment>
<xsl:text>&#xa;</xsl:text>
</xsl:matching-substring>
<xsl:non-matching-substring>
<xsl:value-of select="."/>
</xsl:non-matching-substring>
</xsl:analyze-string>
</xsl:copy>
</xsl:template>

Michael Kay
Saxonica

>
> XSLT
> ====
>
>      <xsl:template match="mytext">
>          <xsl:copy>
>              <xsl:copy-of select="@*"/>
>             <xsl:value-of select="translate(.,',','&#x000A;')"/>
>          </xsl:copy>
>      </xsl:template>
>
> This does the trick just to get hard enter but of course do not generate
> the commented comma. I tried of using concat() along with translate but
> that doesn't seems to be working. Shall I need to write another rule for
> commenting the commas. I do not wish to do that as this is required for
> this element only.
>
> Any clue will be great to get this done. Comment is required just for
> repurposing.
>
> Best,
> --PC

Current Thread