[Home] [By Thread] [By Date] [Recent Entries]
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. 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(.,'-','–')"/> As for an XSLT 1.0 version, you need a recursive call to walk through the string making one replacement at a time along the lines of this untested fragment: <xsl:template name="dashes">
<xsl:param name="content" select="."/>
<xsl:choose>
<xsl:when test="contains($content,'-')">
<xsl:value-of select="substring-before($content,'-')"/>
<xsl:text>–</xsl:text>
<xsl:call-template name="dashes">
<xsl:with-param name="content"
select="substring-after($content,'-')"/>
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$content"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>I hope this helps. . . . . . . . . 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
|

Cart



