RE: [xsl] Print all root node attributes

Subject: RE: [xsl] Print all root node attributes
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Sun, 29 May 2005 21:46:17 +0100
> Hi i use the following snippet to print the root node name, 
> but im also 
> trying to retrieve all the associated attributes of the root 
> node, if any.
> <xsl:for-each select="*">
>   <xsl:value-of select="name()" />
> </xsl:for-each>

Presumably this is in a context where the current node is "/" (the real
"root node").

If "/" is the root of a well-formed document then you can rewrite this as

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

because the root node has only one element child.
> 
> i altered the above to give:
> <xsl:for-each select="*">
>    <xsl:value-of select="name()" />
>        <xsl:for-each select="@*">
>           <xsl:value-of select="current()" />
>        </xsl:for-each>
> </xsl:for-each>

> but this just prints the value of the first attribute in the 
> root node.there 
> are 3 attributes in the root node in my instance.

If the context node is "/" then this should output the concatenated values
of all the attributes of the outermost element of the document. If it's not
working, then perhaps the context isn't what you think it is.

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

Current Thread