[xsl] Exsl str:replace template problems

Subject: [xsl] Exsl str:replace template problems
From: Kenneth Stephen <marvin.the.cynical.robot@xxxxxxxxx>
Date: Tue, 9 Aug 2005 20:54:28 -0500
Hi,

    I'm attempting to work with the EXSL extension template for string
replacement provided at
http://www.exslt.org/str/functions/replace/str.replace.template.xsl .
Here is my code :

	<xsl:template match="text()" priority="2">
		<xsl:text /><xsl:value-of select="concat('Original = ',.,':::')"
/><xsl:text />
		<xsl:call-template name="exsl-str:replace">
			<xsl:with-param name="string" select="." />
			<xsl:with-param name="search" select="'&EOL;'" />
			<xsl:with-param name="replace" select="'&EOL;&TAB;'" />
		</xsl:call-template>
	</xsl:template>

...where the entities are defined as

<!DOCTYPE xsl:stylesheet [
	<!ENTITY EOL "&#x0A;">
	<!ENTITY TAB "&#x09;">
]>

    From my debugging, it appears that any instance of &#x0A; is being
converted to a &#x20 within the replace template. I suspect, the
following copy-of from that code is the guillty party...

				<!-- this converts the search and replace arguments to node sets
					if they are one of the other XPath types -->
				<xsl:variable name="search-nodes-rtf">
					<xsl:copy-of select="$search" />
				</xsl:variable>

....but I dont understand the reasons why and how to work around this
problem. Any ideas?

Thanks,
Kenneth

Current Thread