RE: [xsl] Problem with Saxon 7.9.1 xsl:variable and selecting additional elements from variable value

Subject: RE: [xsl] Problem with Saxon 7.9.1 xsl:variable and selecting additional elements from variable value
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Wed, 12 Oct 2005 12:05:17 +0100
> > In this situation I can't see why you want to make a copy 
> of the original
> > node. Why not just do:
> > 
> >  <xsl:variable name="thissection" select="../myns:section"/>
> In the real environment I do something like:
> 
> <xsl:variable name="thissection" >
>      <xsl:choose>
>          <xsl:when test="../myns:section">
>              <xsl:sequence select="../myns:section"/>
>          </xsl:when>
>          <xsl:when test="../../myns:section">
>              <xsl:sequence select="../../myns:section"/>
>          </xsl:when>
>      </xsl:choose>
> </xsl:variable>
> 
> with first checking where the matching node exists and then set a 
> variable to this to access the subnodes of $thissection.
> So, is there is another way to set the original node to $thissection 
> variable without the xsl:sequence?

It's not xsl:sequence that's the problem, it's the fact that you are
creating a temporary tree, which always causes nodes to be copied.

You can use

<xsl:variable name="thissection" 
    select="(../myns:section, ../../myns:section)[1]"/>

Michael Kay
http://www.saxonica.com/

Current Thread