Re: [xsl] Getting a distinct list of node names

Subject: Re: [xsl] Getting a distinct list of node names
From: "G. Ken Holman" <gkholman@xxxxxxxxxxxxxxxxxxxx>
Date: Mon, 15 Dec 2003 14:56:41 -0500
At 2003-12-15 20:22 +0100, Manuel Holtgrewe wrote:
Maybe this cannot be accomplished with plain Xslt

It can be done with a simple application of variable-based grouping.

I need to get a distinct list of the node names from all children of one
node. For example, if I have:

        <form:validator />
        <form:validator />
        <form:filter />

I want to be able to retrieve a list of the names of all tags used
within node:definition. However, it should contain each tag name only

('form:validator', 'form:filter')

I hope the code below helps.

................... Ken

T:\ftemp>type manuel.xml
<?xml version="1.0" encoding="iso-8859-1"?>
<node:definition xmlns:node="node" xmlns:form="form">

T:\ftemp>type manuel.xsl
<?xml version="1.0" encoding="iso-8859-1"?>
<xsl:stylesheet xmlns:xsl="";

<xsl:output method="text"/>

<xsl:template match="*[*]">
  <xsl:value-of select="name(.)"/>:<xsl:text/>

  <xsl:variable name="childnodes" select="*"/><!--all children-->
  <xsl:for-each select="$childnodes">
    <xsl:if test="generate-id(.)=
      <xsl:text/> '<xsl:value-of select="name(.)"/>'<xsl:text/>


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


T:\ftemp>saxon manuel.xml manuel.xsl
node:definition: 'form:validator' 'form:filter'


North America (Washington, DC): 3-day XSLT/2-day XSL-FO 2004-02-09
Instructor-led on-site corporate, government & user group training
for XSLT and XSL-FO world-wide:  please contact us for the details

G. Ken Holman                 mailto:gkholman@xxxxxxxxxxxxxxxxxxxx
Crane Softwrights Ltd.
Box 266, Kars, Ontario CANADA K0A-2E0    +1(613)489-0999 (F:-0995)
ISBN 0-13-065196-6                       Definitive XSLT and XPath
ISBN 0-13-140374-5                               Definitive XSL-FO
ISBN 1-894049-08-X   Practical Transformation Using XSLT and XPath
ISBN 1-894049-11-X               Practical Formatting Using XSL-FO
Member of the XML Guild of Practitioners:
Male Breast Cancer Awareness

XSL-List info and archive:

Current Thread