What I'm trying to do is to group all elements "a" with attribute
flag="true" at the same level at the xml tree that has only one elemnt
"b" with attribute flag="true" among them.
So...
you mainly want to do an identity transform:
<xsl:template match="*">
<xsl:copy>
<xsl:copy-of select="@*"/>
<xsl:apply-templates/>
</xsl:copy>
</xsl:template>
but if any element contains exactly one b/@flag=true and some
a/@flag=true throw in a <Group> element around the a/@true and bs
<xsl:template match="*[count(b/@true)=1 and a/@true]">
<xsl:copy>
<Group>
<xsl:apply-templates select="(a|b)[(_at_)flag='true']"/>
</Group>
<xsl:apply-templates select="*[not((self::a|self::b)[(_at_)flag='true'])]"/>
</xsl:copy>
</xsl:template>
David
________________________________________________________________________
This e-mail has been scanned for all viruses by Star. 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
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--