RE: [xsl] code review

Subject: RE: [xsl] code review
From: "Andreas L. Delmelle" <a_l.delmelle@xxxxxxxxxx>
Date: Sat, 21 Feb 2004 22:42:05 +0100
> -----Original Message-----
> From: Theresa Devine
> I was wondering if ya'll might review my xslt and see if there is a more
> efficient way of doing this transformation. The part I have questions
> about is the search and replace....


Given your example source document, what exactly do you mean by 'the
occurrence of the schoolname and other info is unpredictable'? That it can
contain quotes, so you need to *first* replace the info, and perform a
subsequent replacement on the result?

*If* you are permitted to, as Jim suggested, change these #...# to simple
empty XML elements, like <data name="..." />.
In your stylesheet, you could then define a template as simple as:

<xsl:template match="data">
  <xsl:value-of select="resstr[name()=current()/@name]" />

to handle all possible replacements for you. The resstr being a ref to an
XML structure containing your replacement strings (--IOW a variable wrapper
around your params?)

And (--but maybe that's no real boost in efficiency, not sure)

> <xsl:template match="BodyText/Title">
> 	<xsl:if test="../@sycampusid=$sycampusid">

In such scenarios, I usually make either the select or the match pattern for
the template contain the condition, so for example, delete the xsl:if and do
higher up:

<xsl:apply-templates select="BodyText[@sycampusid=$sycampusid]/*">

Saves you a few times of invoking the template for which the condition isn't
true to begin with...

Hope this helps!



 XSL-List info and archive:

Current Thread