xsl-list
[Top] [All Lists]

Re: AW: select 1st occurence of element tag name

2004-02-15 09:53:33
Nikolas Nehmer wrote:
Thanks a lot but this version doesn't work as well. The output it
produces is:
<table xmlns="http://www.w3.org/1999/xhtml";>
        <tr>
                <th>Person</th>
        </tr>
</table>

So it seams to pick the top level elements not the second level
elements. But when I try to use /*/* in the match attribute it doesn't
help. Any suggestions?

You have to use the same context in both the key and the
key retrieval:
 <xsl:key name="elements-by-name" match="/*/*" use="name(.)" />
 <xsl:template match="/*">
   <xsl:variable name="unique-elements" select="*[generate-id()=
    generate-id(key('elements-by-name',name(.)))]"/>
...
   <html>
     <table>
       <tr>
         <xsl:apply-templates select="$unique-elements" mode="header" />
       </tr>
    ...
     </table>
   </html>
 </xsl:template>

Wouldn't you think it's a good idea to read the URLs I posted? There
is much background information as well as more extensive examples for
how to use these techniques. Understanding why it's supposed to work
will save you a lot of trial-end-error type work.

J.Pietschmann

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