[XSL-LIST Mailing List Archive Home] [By Thread] [By Date]

Re: [xsl] Store node into variable


Subject: Re: [xsl] Store node into variable
From: "Yoann Moranville yoann.moranville@xxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx>
Date: Tue, 21 Apr 2015 13:33:26 -0000

Thanks! I opted for XPath and that worked exactly as I needed it.


On 21/04/15 15:22, Michael Kay mike@xxxxxxxxxxxx wrote:
Just use

<xsl:variable name="date" select="$element/date"/>

The way you are doing it, you are creating a temporary document to hold a copy of the date element. The variable is a document node, and document nodes have no name.


I would need the $date to be the same node as $date2 (I want to use a "xsl:choose" in the $date variable).

Either use XPath if() instead:

<xsl:variable name="date" select="if (X) then $element/date else $something.else"/>

Or use xsl:sequence and an @as attribute

<xsl:variable name="date" as="element(date)">
   <xsl:choose>
     <xsl:when test="X">
      <xsl;sequence select="$element/date"/>
    </xsl:when>
    ....
</xsl:variable>


Michael Kay Saxonica mike@xxxxxxxxxxxx +44 (0) 118 946 5893


Current Thread
Keywords