This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
AW: replacing a string value - copy-of
- From: "Franz Figl" <frafi at augusta dot de>
- To: <xsl-list at lists dot mulberrytech dot com>
- Date: Fri, 30 Nov 2001 00:01:23 +0100
- Subject: AW: [xsl] replacing a string value - copy-of
- Reply-to: xsl-list at lists dot mulberrytech dot com
Peter, I have a similar problem with copy-of.
I copy a whole untouched html table into my xml tree, this table has a
little different taggings in, for example <sr/> and I want to replace this
after copying into <br/>. How could I do it, please give me also an example.
Franz
-------------------------------------------------
Am I right in assuming that the '?' can occur at any place in the input?:
<foo> hello ? world ? foo </foo>
would translate to:
<foo> hello <img/> world <img/> foo </foo>
This stylesheet will do what you want:
<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:template match="text()" name="img-replace">
<xsl:param name="text" select="string()"/>
<xsl:choose>
<xsl:when test="not(contains($text, '?'))">
<xsl:value-of select="$text"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="substring-before($text, '?')"/>
<img/>
<xsl:call-template name="img-replace">
<xsl:with-param name="text" select="substring-after($text, '?')"/>
</xsl:call-template>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template match="@* | node()[not(self::text())]">
<xsl:copy>
<xsl:apply-templates select="@* | node()"/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
The second template is a modified version of the identity template, taken
from the XSLT spec. You can replace it with your normal processing if you
wish. I tested the template with the latest Xalan from their CVS, but it
should work with just about any processor since it is 100% standard.
On Thursday 29 November 2001 01:48 pm, rick schochler wrote:
> I have a requirement to replace certain string characters (if encountered)
> with a graphic. For example, if the string value of my element foo is a
> question mark (i.e, <foo>?</foo>), I need to replace the ? with a graphic.
>
> Any ideas?
--
Furthermore, I believe bacon prevents hair loss.
Peter Davis
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list