Subject: RE: [xsl] Confision with replace-string template and attributes From: "Hattersley, John" <jhattersley@xxxxxxx> Date: Thu, 11 Mar 2004 05:44:46 -0500 |
>> I would guess that you are trying to add the attribute after you have already >> added other child nodes. Thanks for the response Josh, I didn't realise that was the case, I was adding child elements to aid debugging! Don't I feel the fool. For anyone else who has this problem, xalan-j didn't produce any error messages. Cheers, John -----Original Message----- From: owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx [mailto:owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx]On Behalf Of Josh Canfield Sent: 10 March 2004 20:11 To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx Subject: RE: [xsl] Confision with replace-string template and attributes Josh -----Original Message----- From: owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx [mailto:owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx]On Behalf Of Hattersley, John Sent: Wednesday, March 10, 2004 10:48 AM To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx Subject: [xsl] Confision with replace-string template and attributes Hi all, Wondering if somebody could shed some light on this one, I'm using the ubiquitous replace-string template, e.g <xsl:template name="replace-string"> <xsl:param name="text"/> <xsl:param name="from"/> <xsl:param name="to"/> <xsl:choose> <xsl:when test="contains($text, $from)"> <xsl:variable name="before" select="substring-before($text, $from)"/> <xsl:variable name="after" select="substring-after($text, $from)"/> <xsl:variable name="prefix" select="concat($before, $to)"/> <xsl:value-of select="$before"/> <xsl:value-of select="$to"/> <xsl:call-template name="replace-string"> <xsl:with-param name="text" select="$after"/> <xsl:with-param name="from" select="$from"/> <xsl:with-param name="to" select="$to"/> </xsl:call-template> </xsl:when> <xsl:otherwise> <xsl:value-of select="$text"/> </xsl:otherwise> </xsl:choose> </xsl:template> I'm trying to use this to replace the value of an attribute, e.g. <xsl:variable name="newValue"> <xsl:call-template name="replace-string"> <xsl:with-param name="text" select="$attrib"/> <xsl:with-param name="from" select="$toReplace"/> <xsl:with-param name="to" select="$replaceWith"/> </xsl:call-template> </xsl:variable> <xsl:attribute name="value"><xsl:value-of select="$newValue"/></xsl:attribute> If I do this an attribute called value is not added to my element. However, if I change the final line to: <xsl:element name="value"><xsl:value-of select="$newValue"/></xsl:element> A child element called value is successfully added. I'm using xalan-j. Any help would be much appreciated. Cheers, John XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
RE: [xsl] Confision with replace-st, Josh Canfield | Thread | Re: [xsl] Confision with replace-st, David Carlisle |
[xsl] binding xml to stylesheet, Donal Regan | Date | [xsl] XSLT parameters in TrAX filte, Stephen Summerfield |
Month |