Thanks Jarno. Your code works and you are been very kind to give me the
solution.
I'm not an XSLT expertice and now I study your, for me, very interesting
code.
Grazie e Ciao. Nicola
----- Original Message -----
From: <Jarno(_dot_)Elovirta(_at_)nokia(_dot_)com>
To: <xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com>
Sent: Thursday, July 10, 2003 2:49 PM
Subject: RE: [xsl] URGENT : Algorithm for exclusion elements
Hi,
I need to show in HTLM the <description> elements of all
groups but only if
between an item/type="T" element and another item/type="T" element are
existing item/type="P" elements. In this way, only the SECOND GROUP
<description> elements should be processed. The problem is
that I can know
that nobody <type>P</type> elements are present only after
process the group
(between <type>T</type> elements) and it's too late.
Who can help me for this URGENT problem?
<xsl:key name="x" match="item[not(type = 'T')]"
use="generate-id(preceding-sibling::item[type = 'T'][1])"/>
<xsl:template match="root">
<xsl:copy>
<xsl:for-each select="item[type = 'T']">
<xsl:if test="key('x', generate-id(.))[type = 'P']">
<xsl:apply-templates select=". | key('x', generate-id(.))"/>
</xsl:if>
</xsl:for-each>
</xsl:copy>
</xsl:template>
<xsl:template match="@* | node()">
<xsl:copy>
<xsl:apply-templates select="@* | node()"/>
</xsl:copy>
</xsl:template>
Cheers,
Jarno
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list