BTW dIon, thanks for the great JellyUnit test case to demonstrate this bug!

FWIW I've just committed a workaround example in the JellyUnit test case
that shows that if the stylesheet is defined outside of the loop and reused
inside it, things work fine. I'm close to tracking down this bug now...

James
-------
http://radio.weblogs.com/0112098/
----- Original Message -----
From: <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Sunday, November 17, 2002 3:52 AM
Subject: [jelly] [jsl] XPath context for templates and looping


> I have what appears to be a bug in the jsl tag library wrt relative select
> attributes.
>
> In a script (actually the conversion of Maven's site.dvsl to jelly's jsl),
> I
> 1)loop through a set of files using core:forEach.
> 2) Within the loop each file is then parsed using xml:parse.
> 3) The parsed doc is then used as the source of the jsl:stylesheet
> 4) Within a template an xml:expr is used to retrieve nodes with a select
> relative to the template (or so I thought), e.g.
> select="./properties/author"
>
> First  time through all gets extracted as expected. For every other
> iteration though, it appears the xpath context has 'remembered' the
> original document.
>
> Here's a snippet:
> ---------- Start Snippet ---------
> Step 1:    <j:forEach var="file" items="${docFiles.iterator()}">
> Step 2:      <x:parse var="doc" xml="${file.toURL()}" />
> Step 3:      <jsl:stylesheet select="$doc">
>              <jsl:template match="document" trim="no">
>               <x:doctype name="html"
>                 publicId="-//CollabNet//DTD XHTML 1.0 Transitional//EN"
>                 systemId=
> "http://www.collabnet.com/dtds/collabnet_transitional_10.dtd"; />
>               <html>
>                 <head>
> Step 4:           <j:set var="docTitle"><x:expr select=
> "./properties/title" /></j:set>
>                   Test <x:expr select="./properties/title" /> - <x:expr
> select="$doc/document/properties/title" />
>
> ---------- End Snippet -----------
>
> On the Test line above, just after Step 4, the first expr stays the same
> all the way through the loop.
> The second expr changes as I would expect.
>
> Anything I can do to work around this, short of specifying the full select
> attribute each time?
>
> I've tried to find out where the bad code is, but so far no luck :)
> --
> dIon Gillard, Multitask Consulting
> Work:      http://www.multitask.com.au
> Developers: http://adslgateway.multitask.com.au/developers
>
>
> --
> To unsubscribe, e-mail:
<mailto:[EMAIL PROTECTED]>
> For additional commands, e-mail:
<mailto:[EMAIL PROTECTED]>
>


--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to