Thanks Michael. A combination of codepoints-to-string() and
string-to-codepoints() with search/replace in a function is what I required.
I am responding late as my outlook was giving me troubles from past one
week. :-)
Thanks again.
Pankaj Chaturvedi
-----Original Message-----
From: Michael Kay [mailto:mike@xxxxxxxxxxxx]
Sent: Wednesday, May 14, 2008 6:53 PM
To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
Subject: RE: Unicode Search/Replace
Personally, I would put the replace code in a function, and ensure that is
called whenever you want to process a relevant string.
And I wouldn't do it using character maps, I would generate the actual
Unicode character using codepoints-to-string(), and leave the serializer to
entitize it on output.
Michael Kay
http://www.saxonica.com/
> -----Original Message-----
> From: Pankaj Chaturvedi [mailto:pankaj.chaturvedi@xxxxxxxxx]
> Sent: 14 May 2008 14:17
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: RE: Unicode Search/Replace
>
> Thanks Michael. Are you suggesting me to use something else other then
> <xsl:value-of>, as I want to do search/replace only on text
> <xsl:template match="text()"/>.
>
> Thanks.
>
>
>
> -----Original Message-----
> From: Michael Kay [mailto:mike@xxxxxxxxxxxx]
> Sent: Wednesday, May 14, 2008 5:36 PM
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: RE: Unicode Search/Replace
>
>
> 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: 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 ‐ 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 - xxx xx
> >
> > <!-- Search Replace -->
> >
> > <xsl:character-map name="searchreplace">
> > <xsl:output-character character=""
> > string="&"/>
> > </xsl:character-map>
> > <xsl:template match="text()">
> > <xsl:sequence select="replace(.,
> > '\[#x([0-9A-Za-z]+)\]', '#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>
|