[XSL-LIST Mailing List Archive Home] [By Thread] [By Date]

Re: [xsl] Replace(//text()) in XSLT 1

Subject: Re: [xsl] Replace(//text()) in XSLT 1
From: Martin Honnen <Martin.Honnen@xxxxxx>
Date: Fri, 16 Nov 2012 18:14:53 +0100

G. Ken Holman wrote:
At 2012-11-16 12:01 -0500, Nathan Tallman wrote:
I'd like to replace hyphens with en dashes. In XSLT 2.0, I can do this
with replace(text()), but I'm limited to XSLT 1.0.

How could I achieve the same thing in XSLT 1.0?

<xsl:value-of select="replace(//text(), '-', '&#8211;')"/>

First of all, I would expect the above statement to fail because the first argument to replace has to be a singleton. I would have used:

<xsl:value-of select="replace(.,'-','&#8211;')"/>

As for an XSLT 1.0 version, you need a recursive call to walk through
the string making one replacement at a time

Why does <xsl:value-of select="translate(., '-', '&#8211;')"/> not suffice?


	Martin Honnen --- MVP Data Platform Development

Current Thread