RE: [xsl] Unicode Search/Replace

Subject: RE: [xsl] Unicode Search/Replace
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Wed, 14 May 2008 13:06:02 +0100
The code in your <xsl:template match="text()"/> is only executed if you
apply-templates to text nodes. It is not evaluated if you process the
contents of text nodes using xsl:value-of.

Michael Kay
http://www.saxonica.com/ 

> -----Original Message-----
> From: Pankaj Chaturvedi [mailto:pankaj.chaturvedi@xxxxxxxxx] 
> Sent: 14 May 2008 12:53
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: [xsl] Unicode Search/Replace
> 
> Hi all,
> 
> I am not sure whether I asked this before, but let me take 
> chance. I am using the below for search/replace all the 
> Unicode entities in my output from [#x....] to &#x....; form. 
> Everything works perfect except the cases where I am using 
> the Xpath fuctions like "substring", "substring-before", 
> "substring-after" etc, and the resulting outputs comes out to 
> be again [#x....] format.
> 
> 
> For example If I have the below markup
> 
> <root>
> <coden>xxx xxx &hyphen; xxx xx, Vol. 22, No. 1, January 2008, pp.
> 93-104</coden>
> </root>
> 
> and if I use in <root>	<xsl:value-of 
> select="substring-before(./coden,
> ',')"/>
> 
> I am getting the output like xxx xxx [#x002d] xxx xx while I 
> would like xxx xxx &#x002d; xxx xx
> 
> <!--  Search Replace  -->
> 
> 	<xsl:character-map name="searchreplace">
> 		<xsl:output-character character="&#xE000;" 
> string="&amp;"/>
> 	</xsl:character-map>
> 	<xsl:template match="text()">
> 		<xsl:sequence select="replace(., 
> '\[#x([0-9A-Za-z]+)\]', '&#xE000;#x$1;')"/>
> 	</xsl:template>
> 
> 
> It seems search/replace does not works on text where these 
> are functions are used. Any suggestions how to get this done.
> 
> 
> Best,
> 
> Pankaj
> 
> <HTML><BODY><P><hr size=1></P>
> <P><STRONG>
> 
> Confidentiality Notice:" This message and any attachment(s) 
> contained here are information that is confidential, 
> proprietary to IDS Infotech Ltd. and its customers.
> Contents may be privileged or otherwise protected by law. The 
> information is solely intended for the individual or the 
> entity it is addressed to. If you are not the intended 
> recipient of this message, you are not authorized to read, 
> forward, print, retain, copy or disseminate this message or 
> any part of it. If you have received this e-mail in error, 
> please notify the sender immediately by return e-mail and 
> delete it from your computer."
> 
> </STRONG></P></BODY></HTML>

Current Thread