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