Subject: Re: [xsl] Set variable via contents of <variable> element From: David Carlisle <davidc@xxxxxxxxx> Date: Thu, 17 Dec 2009 13:41:00 GMT |
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. ________________________________________________________________________
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Set variable via contents, Martin Honnen | Thread | RE: [xsl] Set variable via contents, Michael Kay |
RE: [xsl] space was stripping, Michael Kay | Date | RE: [xsl] Set variable via contents, Michael Kay |
Month |