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 |
Maybe this cannot be accomplished with plain Xslt
I need to get a distinct list of the node names from all children of one node. For example, if I have:
<node:definition> <form:validator /> <form:validator /> <form:filter /> </node:definition>
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 once:
('form:validator', 'form:filter')
T:\ftemp>type manuel.xml <?xml version="1.0" encoding="iso-8859-1"?> <node:definition xmlns:node="node" xmlns:form="form"> <form:validator/> <form:validator/> <form:filter/> </node:definition>
T:\ftemp>type manuel.xsl <?xml version="1.0" encoding="iso-8859-1"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<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(.)= generate-id($childnodes[name(.)=name(current())])"> <xsl:text/> '<xsl:value-of select="name(.)"/>'<xsl:text/> </xsl:if> </xsl:for-each>
<xsl:text> </xsl:text> <xsl:apply-templates/> </xsl:template>
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. http://www.CraneSoftwrights.com/s/ 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: http://XMLGuild.info Male Breast Cancer Awareness http://www.CraneSoftwrights.com/s/bc
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] Getting a distinct list of no, Manuel Holtgrewe | Thread | RE: [xsl] Getting a distinct list o, Andreas L. Delmelle |
RE: [xsl] fo:list-block problem, G. Ken Holman | Date | RE: [xsl] Getting a distinct list o, Andreas L. Delmelle |
Month |