[XSL-LIST Mailing List Archive Home]
[By Thread]
[By Date]
Re: [xsl] How to do an 'existence' test in XSL?
Subject: Re: [xsl] How to do an 'existence' test in XSL? From: Dimtre Novatchev <dnovatchev@xxxxxxxxx> Date: Thu, 23 Dec 2004 08:01:01 +1100 |
In case you know all possible types in advance, a simple (but not too-efficient) way of picking up all "existing" gui types is the following: <xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xs="http://www.w3.org/2001/XMLSchema" > <xsl:output method="text"/> <xsl:param name="pAllStyles" as="xs:string+" select="'alertBox', 'combo', 'help', 'tooltip'"/> <xsl:variable name="vDoc" select="/"/> <xsl:template match="/"> <xsl:value-of separator="
" select= "$pAllStyles[. = $vDoc/styles/gui/@type ]" /> </xsl:template> </xsl:stylesheet> When this transformation is applied on your source xml (provided with a single element parent): <styles> <gui type="alertBox"/> <gui type="tooltip"/> <gui type="help"/> <gui type="tooltip"/> <gui type="alertBox"/> <gui type="tooltip"/> <gui type="help"/> </styles> the wanted result is produced: alertBox help tooltip Cheers, Dimitre. On Wed, 22 Dec 2004 14:33:06 +0000, ben@xxxxxxxxxxxxx <ben@xxxxxxxxxxxxx> wrote: > I'm having great difficulty understanding how/if XSL provides the tool to satisfy the following simple requirement. > > Lets say I have some simple xml like : > > <gui type="alertBox">...</gui> > <gui type="tooltip">...</gui> > <gui type="help">...</gui> > <gui type="tooltip">...</gui> > <gui type="alertBox">...</gui> > <gui type="tooltip">...</gui> > <gui type="help">...</gui> > > To simplify things... imagine transforming this document in such a way that we have something like : > > <alertBox/> > <tooltip/> > <help/> > > i.e. I would like the XSL to result in one output per gui type. > > So there is the problem... how on earth do I process the xml such that it results in an output per +type+ rather than for each instance (is that explained well enough?)... i.e. it's easy to match on the attributes but each match produces output so I would get : > > <alertBox/><alertBox/> > <tooltip/><tooltip/><tooltip/> > <help/><help/> > > Can anyone offer advice on the way in which I ought to approach this problem? > > Kindest regards, > > Ben
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] How to do an 'existence' , Mukul Gandhi | Thread | RE: [xsl] How to do an 'existence' , George James |
RE: [xsl] How to do an 'existence' , Wendell Piez | Date | Re: [xsl] xsl:sort now working unde, Sylvia Murphy |
Month |