Stylesheet lists values [Was Re: Stylesheet listing elements and attributes]

Subject: Stylesheet lists values [Was Re: Stylesheet listing elements and attributes]
From: Miloslav Nic <nicmila@xxxxxxxxx>
Date: Wed, 29 Nov 2000 11:44:37 +0100
 <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="generate-id() =
       <xsl:text>&#xA;     </xsl:text>
       <xsl:value-of select="name()"/>
       <xsl:text>: </xsl:text>

   <xsl:template match="@*" mode="values">
     <xsl:variable name="sameValues" 
= current()]" />

       <xsl:if test="generate-id() = generate-id($sameValues)">
	 <xsl:value-of select="."/>
	 <xsl:value-of select="count($sameValues)"/>
	 <xsl:text>) </xsl:text>


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

Sebastian Rahtz wrote:
> Miloslav Nic writes:
>  > Inspired by your mail:
> thanks, very interesting; you worked along similar lines to my (failing)
> stylesheet. BUT
>  a) it does not work with Saxon. I *only* get the list of elements,
>     no list of attributes. curiously, Xalan does give me the
>     attributes, so either Saxon or Xalan has a bug understanding
>      <xsl:key name="allSameAttributes" match="@*" use="name(parent::*)"/>
>    which, I agree, ought to work. Perhaps Mike Kay could comment on that?
>  b) how about a list of the different values for each
>  attribute... what I really want to see is something like
>    p
>     rend: green (2), left (1)
>     type: warning (3)
>    note
>     place: margin (10), foot (12)
>    xptr
>     type: transclude (43)
>     url: (1), (1)
> where the numbers are the counts for each occurrence of that value for
> that attribute for that element.
> 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