RE: [xsl] container list display problem

Subject: RE: [xsl] container list display problem
From: Wendell Piez <wapiez@xxxxxxxxxxxxxxxx>
Date: Tue, 07 May 2002 10:40:00 -0400

You could also try a more general approach, using the preceding:: axis --

<xsl:variable name="reelnumber">
  <xsl:value-of select="container[@type='reel']"/>
<xsl:variable name="prevreelnumber">
  <xsl:value-of select="preceding::container[@type='reel'][1]"/>
  <xsl:when test="$reelnumber = $prevreelnumber">

Ordinarily, you may want to avoid the preceding axis on the grounds that it's expensive (it traverses the document back to the beginning); but it's designed for exactly the kind of application you have. Since you're going back just to the immediately preceding container[@type='reel'] (as indicated by the [1] predicate, which means the first in reverse document order, preceding being a "reverse" axis), however, a smart processor can optimize the node selection so the traversal isn't so bad.

I think I suggested preceding:: earlier; I don't know why I didn't think of it last night.


At 03:21 PM 5/6/2002, you wrote:
<xsl:variable name="reelnumber">
<xsl:value-of select="container[@type='reel']"/>
<xsl:when test="(../preceding-sibling::c03[1]/did/container[@type='reel']=$reelnumber)
or (../parent::c02/did/container[@type='reel']=$reelnumber)">

<!--Selects cases where the value of the reel container is the same as that of a previous
component. In that case, no column labels are added and only the frame number appears
along with the other component data.-->

Wendell Piez                            mailto:wapiez@xxxxxxxxxxxxxxxx
Mulberry Technologies, Inc.      
17 West Jefferson Street                    Direct Phone: 301/315-9635
Suite 207                                          Phone: 301/315-9631
Rockville, MD  20850                                 Fax: 301/315-8285
  Mulberry Technologies: A Consultancy Specializing in SGML and XML

XSL-List info and archive:

Current Thread