Re: Set variable via contents of <variable> element
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. ________________________________________________________________________
PURCHASE STYLUS STUDIO ONLINE TODAY!
Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!
Download The World's Best XML IDE!
Accelerate XML development with our award-winning XML IDE - Download a free trial today!
Subscribe in XML format