Re: [xsl] name() of root element

Subject: Re: [xsl] name() of root element
From: David Carlisle <davidc@xxxxxxxxx>
Date: Tue, 1 Apr 2003 16:58:25 +0100
> Why does this not select the name of the root *element* 

Note Xpath does not have a root element only root nodes(which are not
elements) Document element or top level element is more in line with
xpath terminology and leads to less confusion about root nodes.


  Why does this not select the name of the root *element* but 
  instead gives me the text value of that element, i.e., the 
  concatenated text values of every element in my document?

      <xsl:template match="/" >
          <xsl:value-of select="(/node()[1])[name()]" />
          <xsl:apply-templates />
      </xsl:template>



an expression like

  <xsl:value-of select="(/node()[1])[name()]" />

would always give the string value of a node rather than its name as
[name()]
is a predicate that is true if teh node has a name, not an expression
returning the name of the node. element and attribute enodes have names,
root and comment nodes do not for example.

(/node()[1])

selects the first child node of the root, which may be the document
element, or it may be a comment or a processing instruction if you have
one of those.

so
(/node()[1])[name()]

will return the empty node set if the first node has no name (eg it is a
comment) or will return the set consisting of teh first child node if it
is an element.

In your case it will be an element, then value-of will return teh string
value of this expression, which in the case of elements is all teh
character data.

You are making it far more complicated than you need, you just want:

<xsl:value-of select="name(*)" />

David

________________________________________________________________________
This e-mail has been scanned for all viruses by Star Internet. The
service is powered by MessageLabs. For more information on a proactive
anti-virus service working around the clock, around the globe, visit:
http://www.star.net.uk
________________________________________________________________________

 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


Current Thread