Stylesheet listing elements and attributes [Was: a key of attributes]

Subject: Stylesheet listing elements and attributes [Was: a key of attributes]
From: Miloslav Nic <nicmila@xxxxxxxxx>
Date: Wed, 29 Nov 2000 08:34:14 +0100
Inspired by your mail:

 <xsl:stylesheet xmlns:xsl = "";
version =
"1.0" > 
   <xsl:output method="text"/>

   <xsl:key name="elements" match="*" use="name()"/>
   <xsl:key name="attributes" match="@*"
   <xsl:key name="allSameAttributes" match="@*" use="name(parent::*)"/>

   <xsl:template match = "*" > 
     <xsl:if test="generate-id() = generate-id(key('elements',name()))">
       <xsl:value-of select="name()"/>
       <xsl:apply-templates select="key('allSameAttributes',name())"/>

   <xsl:template match="@*">
     <xsl:if test="position()=1">
       <xsl:text> [ </xsl:text>

     <xsl:if test="generate-id() =
       <xsl:value-of select="name()"/>
       <xsl:text> </xsl:text>

     <xsl:if test="position()=last()">
       <xsl:text> ] </xsl:text>

   <xsl:template match="text()"/>

Sebastian Rahtz wrote:
> I want to set up an XSLT key of attribute occurrences indexed by the
> name of the element they occur in, so I said
>  <xsl:key name="atts" match="@*" use="name(..)"/>
> but when I later say eg
>              <xsl:for-each select="key('atts','xptr')">
> I get no results. Am I misunderstanding something about keys?
> ".." from an attribute seems to return the element name
> if I do it by hand.
> If anyone feels strong enough to solve the whole problem, what I am
> writing is a stylesheet to list all the different element names in a
> document, and for each one list all the attributes used, and for each
> attribute list the values used. It sounds easier in theory than it is in
> practice, I am finding. anyone have a canned solution?
> sebastian
>  XSL-List info and archive:

<firstName> Miloslav </firstName>    
<surname>   Nic      </surname>     

<mail>    nicmila@xxxxxxxxx    </mail>   
<support>  </support>

 XSL-List info and archive:

Current Thread