xsl-list
[Top] [All Lists]

RE: [xsl] Unicode Search/Replace

2008-05-14 06:23:49
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(_dot_)chaturvedi(_at_)idsil(_dot_)com] 
Sent: 14 May 2008 14:17
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: RE: [xsl] 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(_at_)saxonica(_dot_)com]
Sent: Wednesday, May 14, 2008 5:36 PM
To:   xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject:      RE: [xsl] 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(_dot_)chaturvedi(_at_)idsil(_dot_)com]
Sent: 14 May 2008 12:53
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
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>


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



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