[XSL-LIST Mailing List Archive Home] [By Thread] [By Date]

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....
>

Hi,

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]" />
</xsl:template>

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!

Cheers,

Andreas


 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list



Current Thread
Keywords