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

[xsl] XSLT2 xsl:sequence blocking ancestor refs?


Subject: [xsl] XSLT2 xsl:sequence blocking ancestor refs?
From: Marshall Schor <msa@xxxxxxxxx>
Date: Tue, 27 Mar 2007 08:31:43 -0400

Using xsl:sequence seems to chop off the ability to reference ancestors
of selected nodes.
Is this working-as-designed?

Here's a quick demo.  In this piece of test code, the variable "b" has
no parent, while the variable "a" does:

<xsl:variable name="in">
   <e1>
     <e2>
       <e3>
         <e4>yes</e4>
       </e3>
     </e2>
   </e1>
 </xsl:variable>

<xsl:template match="anything_to_get_started">

   <xsl:variable name="p" select="$in/e1/e2/e3/e4"/>
   <xsl:variable name="a" select="$p"/>
   <xsl:message select="'parent of a'"/>
   <xsl:message select="$a/parent::node()"/>

   <xsl:variable name="b">
     <xsl:sequence select="$p"/>
   </xsl:variable>
   <xsl:message select="'parent of b'"/>
   <xsl:message select="$b/parent::node()"/>

</xsl:template>

The output using Saxon 8.9

    [java] parent of a
    [java] <e3><e4>yes</e4></e3>
    [java] parent of b


-Marshall Schor



Current Thread