Hi,
I am having a problem with non-english characters and how they appear in
attribute values as apposed to element content. This is a simplified
version of the code I having a problem with:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="2.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:fo="http://www.w3.org/1999/XSL/Format">
<xsl:output method="html" version="4.01" indent="yes" encoding="UTF-8"/>
<xsl:template match="/">
<html>
<body><xsl:apply-templates select="//values" /></body>
</html>
</xsl:template>
<xsl:template match="values">
<ul><xsl:apply-templates select="value" /></ul>
</xsl:template>
<xsl:template match="value">
<li>
<xsl:element name="a">
<xsl:attribute
name="href">javascript:pushSelectionBackToOpener('<xsl:value-of
select="."/>')</xsl:attribute>
<xsl:value-of select="."/>
</xsl:element>
</li>
</xsl:template>
</xsl:stylesheet>
Here is an example of the source document:
<?xml version="1.0" encoding="utf-8"?>
<result>
<values>
<value>Larry</value>
<value>Gisèle</value>
</values>
</result>
The result of running this xsl on the source doc is as follows (note
that the href attribute is different from the element content):
<html xmlns:fo="http://www.w3.org/1999/XSL/Format">
<head>
<meta http-equiv="Content-Type" content="text/html;
charset=iso-8859-1">
<title></title>
</head>
<body></body>
<ul>
<li><a
href="javascript:pushSelectionBackToOpener('Larry')">Larry</a></li>
<li><a
href="javascript:pushSelectionBackToOpener('Gis%C3%A8le')">Gisèle</a></li>
</ul>
</html>
The javascript function puts its parameter into an htm form field, and
appears as "Gisèle" instead of "Gisèle". Does anyone know how I can
get the right value to apear in the attribute value? I am using Saxon
8 BTW.
David Sinclair.