Subject: Re: [xsl] Re: Angle brackets and string manipulation From: Steve Rosenberry <Steve.Rosenberry@xxxxxxxxxxxxxxxxxxxxxxxxx> Date: Mon, 10 Mar 2003 14:41:02 -0500 |
Dimitre Novatchev wrote: > > The "insert_breaks" template could create <br /> ***nodes*** -- not simply > insert text. > > ... > > Also do not define the xsl:variable "t1", but simply call the template > to produce its result. > > ... > > This [the above snipped version] is creating just text -- should > create a sequence of text nodes and "br" elements: > > <xsl:if test="contains($source_string,$marker)"> > <xsl:value-of select="substring-before( $source_string, $marker )"/> > <br /> > <xsl:call-template name="insert_breaks"> > <xsl:with-param name="source_string" select="substring-after( > $source_string, $marker )"/"> > <xsl:with-param name="marker" select="$marker"/> > </xsl:call-template> > Thanks, Dimitre. I got the insert_breaks template to work with your suggested snippet shown above to create nodes instead of just a text string. Indeed this was one of my early attempts. The problem remains that there is more than one substitution required, thus the reason for variable, "t1". I pass "t1" to the next substitution -- a simple string substitution, no node creation -- and subsequently lose the <br /> element. After bustin' my head against the wall for another few hours with various combinations of node-set() calls here and there, I decided to take a look at EXSLT to see what the string library had implemented, and Jeni did not let me down -- a full-blown replace any darn thing(s) with any darn thing(s) 'til your heart's content. Final version and an example of using str:replace for multiple substitutions with both string and element replacements: <xsl:template match="text()"> <xsl:call-template name="str:replace"> <xsl:with-param name="string" select="." /> <xsl:with-param name="search"> <t>!br;</t> <!-- node names are unimportant --> <t>!emdash;</t> </xsl:with-param> <xsl:with-param name="replace"> <br /> <!-- replacements by position for above --> <t>—</t> </xsl:with-param> </xsl:call-template> </xsl:template> Thanks again, Dimitri and Jeni. -- Steve Rosenberry Sr. Partner Electronic Solutions Company -- For the Home of Integration http://ElectronicSolutionsCo.com (610) 670-1710 XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] Re: Angle brackets and string, Dimitre Novatchev | Thread | Re: [xsl] Angle brackets and string, Mike Brown |
RE: [xsl] XSL Error, Jack Cane | Date | [xsl] Conversions for PeopleSoft in, Shoe, Bridget |
Month |