- From: axdmoraes <alexmoraes@gmail.com>
- Date: Mon, 15 Oct 2007 11:47:47 -0700 (PDT)
- To: xsl-editors@w3.org
Hi, I need to find some word in the xml and put a tag <high> around it. I did it using the Dave Pawson´s search and replace acronym´s method.(http://www.dpawson.co.uk/xsl/sect2/replace.html#d9478e115) Now i need that this works in case-insensitive. Can anyone help me? Here is my code... <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="xml" omit-xml-declaration="yes"/> <xsl:param name="palavra"/> <xsl:template match="/"> <xsl:apply-templates/> </xsl:template> <xsl:template match="@*|*"> <xsl:copy> <xsl:apply-templates select="@*|node()"/> </xsl:copy> </xsl:template> <xsl:template match="text()"> <xsl:call-template name="globalreplace"> <xsl:with-param name="toreplace" select="$palavra"/> <xsl:with-param name="output" select="."/> </xsl:call-template> </xsl:template> <xsl:template name="globalreplace"> <xsl:param name="toreplace"/> <xsl:param name="output"/> <xsl:variable name="outputlower"> <xsl:value-of select="translate($output,'ABCDEFGHIJKLMNOPQRSTUVXYZ','abcdefghijklmnopqrstuvxyz')"/> </xsl:variable> <xsl:choose> <xsl:when test="not(string($toreplace))"> <xsl:value-of select="$output"/> </xsl:when> <xsl:when test="not(string($output))"/> <xsl:otherwise> <xsl:variable name="singlereplace"> <xsl:choose> <xsl:when test="string-length(substring-before($toreplace,'|'))>0"> <xsl:value-of select="substring-before($toreplace,'|')"/> </xsl:when> <xsl:otherwise> <xsl:value-of select="$toreplace"/> </xsl:otherwise> </xsl:choose> </xsl:variable> <xsl:choose> <xsl:when test="contains($outputlower, $singlereplace)"> <xsl:variable name="before"> <xsl:value-of select="translate(substring-before($outputlower, $singlereplace),$outputlower,$output)"/> <!--xsl:value-of select="substring-before($output,$singlereplace)"/--> </xsl:variable> <xsl:variable name="after"> <xsl:value-of select="translate(substring-after($outputlower, $singlereplace),$outputlower,$output)"/> <!--xsl:value-of select="substring-after($output,$singlereplace)"/--> </xsl:variable> <xsl:call-template name="globalreplace"> <xsl:with-param name="output" select="$before"/> <xsl:with-param name="toreplace" select="substring-after($toreplace,'|')"/> </xsl:call-template> <high><xsl:value-of select="$singlereplace"/></high> <xsl:call-template name="globalreplace"> <xsl:with-param name="output" select="$after"/> <xsl:with-param name="toreplace" select="substring-after($toreplace,'|')"/> </xsl:call-template> </xsl:when> <xsl:otherwise> <xsl:call-template name="globalreplace"> <xsl:with-param name="output" select="$output"/> <xsl:with-param name="toreplace" select="substring-after($toreplace,'|')"/> </xsl:call-template> </xsl:otherwise> </xsl:choose> </xsl:otherwise> </xsl:choose> </xsl:template> </xsl:stylesheet> thanks, Alexandre -- View this message in context: http://www.nabble.com/Replace-case-insensitive-tf4629525.html#a13219155 Sent from the w3.org - xsl-editors mailing list archive at Nabble.com.
Received on Monday, 15 October 2007 18:47:55 UTC