[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: "G. Ken Holman" <gkholman@xxxxxxxxxxxxxxxxxxxx>
Date: Fri, 16 Nov 2012 12:16:07 -0500

At 2012-11-16 18:14 +0100, Martin Honnen wrote:
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?

Ouch! Of course! I was focused on a generic replace.

Thank you, Martin.

. . . . . . Ken

-- Contact us for world-wide XML consulting and instructor-led training Free 5-hour lecture: http://www.CraneSoftwrights.com/links/udemy.htm Crane Softwrights Ltd. http://www.CraneSoftwrights.com/s/ G. Ken Holman mailto:gkholman@xxxxxxxxxxxxxxxxxxxx Google+ profile: https://plus.google.com/116832879756988317389/about Legal business disclaimers: http://www.CraneSoftwrights.com/legal

Current Thread