Re: [XSLT/newbie]value-of attributes of the root node

Subject: Re: [XSLT/newbie]value-of attributes of the root node
From: Wendell Piez <wapiez@xxxxxxxxxxxxxxxx>
Date: Tue, 19 Sep 2000 11:22:46 +0100
Hey newbie (Nic),

Thanks for the well-written subject line.

The trick is that an XPath expression in a select attribute such as
>  <name><xsl:value-of select="@name" />

is evaluated with respect to a given context, which includes a "context
node." In this case, the node is the root node, since that's what your
template matches on. You may already know that the root node, in XSL, is
_not_ the document element node, but rather a node in its own right, of
which the document element (here, <description>), is a child.

So in this case,
  <name><xsl:value-of select="description/@name" />

would work, since the XPath expression 'description/@name' navigates down
from the root node to get the attribute whose value you want.

If the template had matched 'description' instead of '/', you'd be in
business with the expression as currently written, since in that case, the
context node for evaluation would be the <description> element, not the root.

Hope that helps,

At 02:25 PM 9/19/00 +0000, you wrote:
>I am trying to get the value of an attribute of the root node 
>into mydocument, but having a hard time.
>The source is:
><description name="AirCon 5000">
> <change recency="7">
> text
> </change>
> <change recency="4">
> text
> </change>
> <change recency="3">
> text
> </change>
>but this template returns nothing between <name> and </name>:
><xsl:template match="/">
> <outputroot>
>  <name><xsl:value-of select="@name" />
>  </name>
> <xsl:apply-templates />
> </outputroot>
>However, if I have a template later which requests the attribute 
>value of a different element (e.g. <change recency="x">), that 
>works perfectly, as per s7.6 of the spec.

Wendell Piez                            mailto:wapiez@xxxxxxxxxxxxxxxx
Mulberry Technologies, Inc.      
17 West Jefferson Street                    Direct Phone: 301/315-9635
Suite 207                                          Phone: 301/315-9631
Rockville, MD  20850                                 Fax: 301/315-8285
  Mulberry Technologies: A Consultancy Specializing in SGML and XML

 XSL-List info and archive:

Current Thread