xsl-list
[Top] [All Lists]

Re: template matching

2004-02-04 08:34:40

You haven't fully specified your input, in particular can your sub2
elements contain anything other than note elements?
most of the replies I've seen have assumed not and generated a ul on the
parent.

Thi sis an alternative that allows sub1 to contain other stuff to be
processed besides notes, and just wraps each bunch of consecutive notes
in a list, whatever their parent, so

<sub1>
foo foo <b>bar</b>
<note>a</note>
<note>aa</note>
foo foo <b>bar</b>
<note>b</note>
<note>bb</note>
</sub1>

comes out as
<div>
foo foo <b>bar</b>
<ul>
<li>a</li>
<li>aa</li>
</ul>
foo foo <b>bar</b>
<ul>
<li>b</li>
<li>bb</li>
</ul>
</div>



<!-- through most notes away (they will be handled elsewhere -->
<xsl:template match="note"/>

<!-- special case teh first note in each contiguous group of notes, to
form a list and then process the nodes in note mode -->
<xsl:template match="note[not(preceding-sibling::*[1][self::note])]">
<ul>
<xsl:apply-template mode="note" select="."/>
</ul>
</template>


<!-- make an item and process the next element node if it is a note-->
<xsltemplate match="note" mode="note">
<li><xsl:apply-templates/></li>
<xsl:apply-templates seelct=following-sibling::*[1][self::note]"/>
</xsl:template>



-- 
http://www.dcarlisle.demon.co.uk/matthew

________________________________________________________________________
This e-mail has been scanned for all viruses by Star Internet. The
service is powered by MessageLabs. For more information on a proactive
anti-virus service working around the clock, around the globe, visit:
http://www.star.net.uk
________________________________________________________________________

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



<Prev in Thread] Current Thread [Next in Thread>