Subject: RE: [xsl] How to do an 'existence' test in XSL? From: George James <GeorgeJ@xxxxxxxxxxxxxxx> Date: Wed, 22 Dec 2004 18:38:08 -0000 |
Mukul To me, your solution is not as simple as it could be. And I don't think this is really a grouping problem. As the op said this is an 'existence' problem. If any <gui type="alertBox"> element exists then generate the appropriate output. Assuming that the list of gui types is fixed then the following would work: <xsl:template match="/root"> <root> <xsl:if test=" gui[@type='alertBox'] "> <alertBox/> </xsl:if> <xsl:if test=" gui[@type='tooltip'] "> <tooltip/> </xsl:if> <xsl:if test=" gui[@type='help'] "> <help/> </xsl:if> </root> </xsl:template> Regards George George James Software www.georgejames.com An InterSystems Technology Partner > -----Original Message----- > From: Mukul Gandhi [mailto:mukul_gandhi@xxxxxxxxx] > Sent: 22 December 2004 17:05 > To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx > Subject: Re: [xsl] How to do an 'existence' test in XSL? > > > Here is a simple approach you can try.. > > <?xml version="1.0" encoding="UTF-8"?> > <xsl:stylesheet version="1.0" > xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> > > <xsl:output method="xml" indent="yes" /> > > <xsl:template match="/root"> > <root> > <xsl:for-each select="gui"> > <xsl:if test="not(@type = > preceding-sibling::gui/@type)"> > <xsl:element name="{@type}" /> > </xsl:if> > </xsl:for-each> > </root> > </xsl:template> > > </xsl:stylesheet> > > When the above XSL is applied to XML - > <?xml version="1.0" encoding="UTF-8"?> > <root> > <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> > </root> > > The o/p recieved is - > <?xml version="1.0" encoding="UTF-8"?> > <root> > <alertBox/> > <tooltip/> > <help/> > </root> > > Regards, > Mukul > > --- 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 > > > > > > > > > __________________________________ > Do you Yahoo!? > Yahoo! Mail - Easier than ever with enhanced search. Learn > more. http://info.mail.yahoo.com/mail_250 > > -- > No virus found in this incoming message. > Checked by AVG Anti-Virus. > Version: 7.0.296 / Virus Database: 265.6.4 - Release Date: 22/12/2004 > > -- No virus found in this outgoing message. Checked by AVG Anti-Virus. Version: 7.0.296 / Virus Database: 265.6.4 - Release Date: 22/12/2004
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] How to do an 'existence' , Dimtre Novatchev | Thread | RE: [xsl] How to do an 'existence' , Wendell Piez |
RE: [xsl] Calculating Sum in XSLT 1, Abhijit Junnare | Date | RE: [xsl] How to do an 'existence' , Wendell Piez |
Month |