- From: Oliver Becker <obecker@informatik.hu-berlin.de>
- Date: Mon, 9 Feb 2004 10:44:13 +0100 (MET)
- To: David.Pawson@rnib.org.uk
- Cc: public-qt-comments@w3.org
Hi Dave, thanks for your support. :-) > <xsl:function name="dp:escHash" as="xs:string"> > <xsl:param name="str" as="xs:string"/> > > > <xsl:variable name="t0"> > <xsl:value-of select="if (contains($str,'{' )) > then replace($str, '\{', '{day}{of}') > else $str"/> > </xsl:variable> > etc. > > > to achieve the objective of this proposal, multiple replacements > in the same string, I had 8 sequences of variable creation > based on the previous substitution. However, why are doing it in this rather long-winded way? <xsl:variable .. <xsl:value-of select= .. can be written in your case as <xsl:variable select= .. Then: why are you testing for the occurance of the { character? I think, simply calling the replace function (regardless whether there is a substring to replace or not) will give you the same result. <xsl:variable select="replace($str, '\{', '{day}{of}')" /> If you need 8 replacements then nested invocations of replace should do it: replace(replace(replace(....) ... '\{', '{day}{of}') This is still a little bit messy, but probably shorter than using xsl:analyze-string, even with my proposal. xsl:analyze-string is useful for replacements with markup (aka complex content). (Which means that in my last email one of my my use cases -- the XML to HTML verbatim formatter -- is not a real use case, because most of the replacements used only characters. However, the second example -- code syntax highlighting -- still stands.) Regards, Oliver /-------------------------------------------------------------------\ | ob|do Dipl.Inf. Oliver Becker | | --+-- E-Mail: obecker@informatik.hu-berlin.de | | op|qo WWW: http://www.informatik.hu-berlin.de/~obecker | \-------------------------------------------------------------------/
Received on Monday, 9 February 2004 04:51:51 UTC