It depends if you are using xslt1 or 2.
In XSLT1 if you use content then you always generate a result tree
fragment (essentially a new node set, together with a restriction that
it may not be queried with xpath).
So then if you want to do a conditional you have to use the contition in
xpath, since xpath1 doesn't have if then else you have to be a bit
creative eg
<xsl:variable name="x"
select="this[some predicate] | orthis[not(some predicate)]"/>
so although formally this is a union, only one of the branches is ever
non empty so really it is a conditional.
In xpath2 you could write that as
<xsl:variable name="x"
select="if (some predicate) this else orthis"/>
or, if you prefer
<xsl:variable name="x" as="element()*">
<xsl:choose>
<xsl:when test="some predicate">
<xsl:sequence select="this"/>
</xsl:when>
<xsl:otherwise>
<xsl:sequence select="orthis"/>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
David
________________________________________________________________________
The Numerical Algorithms Group Ltd is a company registered in England
and Wales with company number 1249803. The registered office is:
Wilkinson House, Jordan Hill Road, Oxford OX2 8DR, United Kingdom.
This e-mail has been scanned for all viruses by Star. The service is
powered by MessageLabs.
________________________________________________________________________
--~------------------------------------------------------------------
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>
--~--