I have a problem which was asked a while ago but I couldn't find the final
answer to that question. So I'm sorry that I have to raise this question
again.(http://lists.xml.org/archives/xml-dev/200310/msg00841.html)
I have a very similar problem in which, I have an xml record passed to my
stylesheet which contains the following string:
Crémieu, V.
So, in order for the stylesheet to handle this special characters
correctly, I need to defined it in my dtd file(document.dtd) like this:
<!ENTITY eacute "é" >
and include this dtd file in the xml file passed to the stylesheet:
<!DOCTYPE document SYSTEM "document.dtd" >
Then, the special characters are displayed correctly but when I tried to
pass it as part of the url through javascript:
<a href="javascript:frLink('FRLink','author',"{$thisTerm}");">
in which the $thisTerm is the string Crémieu, V., the same string
becomes "Cr%C3%A9mieu, V".
I tried to use the solution introduced in the link above by doing
escape-javascript like this:
<xsl:template name="escape-javascript">
<xsl:param name="string" />
<xsl:choose>
<xsl:when test='contains($string, "é")'>
<xsl:call-template name="escape-javascript">
<xsl:with-param name="string"
select='substring-before($string, "é")' />
</xsl:call-template>
<xsl:text>&eacute;</xsl:text>
<xsl:call-template name="escape-javascript">
<xsl:with-param name="string"
select='substring-after($string, "é")' />
</xsl:call-template>
</xsl:when>
<!-- test for other special characters or entities here -->
<xsl:otherwise><xsl:value-of select="$string" /></xsl:otherwise>
</xsl:choose>
</xsl:template>
It seems to work for this case. But I have too many special characters
that I cannot do the escape for every special characters.
Can you help to find a better solution to solve this problem?
Thanks in advance.
Ming
--~------------------------------------------------------------------
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>
--~--