Re: [xsl] using xsl:output-character to render characters in 2 ways

Subject: Re: [xsl] using xsl:output-character to render characters in 2 ways
From: Martin Honnen <Martin.Honnen@xxxxxx>
Date: Fri, 13 Nov 2009 17:39:23 +0100
Tom T wrote:
I'll change my example.

Financial Times, "ErdoDan Grubu'na"

creates

  <meta name="description"
            content='Financial Times, &#34;ErdoDan Grubu'na&#34;'
            />

I now have an attribute that is marked up by single quotes containing
a single quote. IE6 for one cannot deal with this.

Is the above 'meta' element the output of an XSLT processor? Which one do you use?


For instance when I have an input XML with your above text

<desc>Financial Times, "ErdoDan Grubu'na"</desc>

and then use Saxon 9.2.0.3 to run the stylesheet

<xsl:stylesheet
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
  xmlns:xs="http://www.w3.org/2001/XMLSchema";
  xmlns="http://www.w3.org/1999/xhtml";
  exclude-result-prefixes="xs"
  version="2.0">

<xsl:output indent="yes" method="xhtml" omit-xml-declaration="yes"/>

  <xsl:template match="/">
    <html>
      <head>
        <title>Example</title>
        <xsl:apply-templates select="desc"/>
      </head>
      <body>
      </body>
    </html>
  </xsl:template>

  <xsl:template match="desc">
    <meta name="description" content="{.}"/>
  </xsl:template>

</xsl:stylesheet>

against that input then the resulting XHTML document is

<html xmlns="http://www.w3.org/1999/xhtml";>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Example</title>
<meta name="description" content="Financial Times, &#34;ErdoDan Grubu'na&#34;" />
</head>
<body></body>
</html>


and that output looks fine to me, the content attribute value is delimited by double quotes and therefore any double quote in the value is escaped.



--

	Martin Honnen
	http://msmvps.com/blogs/martin_honnen/

Current Thread