Subject: Re: [xsl] Match nodes with a range of values From: David Carlisle <davidc@xxxxxxxxx> Date: Thu, 15 Jul 2004 16:06:09 +0100 |
as I said in my original reply I don't think you can do this with a pure xslt 1 expression, you could in xslt2 or you need to use an xslt costruct: <SCHED> <Schedule> <Day id="1"> <Squad id="1"> <event id="1" timebeg="1350" timeend="1500"/> <event id="1" timebeg="1100" timeend="1400"/> <event id="1" timebeg="900" timend="960"/> <event id="2" timebeg="960" timend="1020"/> <event id="3" timebeg="1020" timend="1080"/> <event id="4" timebeg="1080" timend="1140"/> </Squad> <Squad id="3"> <event id="4" timebeg="900" timend="960"/> <event id="2" timebeg="960" timend="1020"/> <event id="3" timebeg="1020" timend="1080"/> <event id="1" timebeg="1080" timend="1140"/> <event id="1" timebeg="1081" timend="1141"/> </Squad> <Squad id="7"> <event id="2" timebeg="900" timend="960"/> <event id="3" timebeg="960" timend="1020"/> <event id="4" timebeg="1020" timend="1080"/> <event id="1" timebeg="1080" timend="1140"/> </Squad> </Day> <Day id="2"/> <Day id="3"/> <Day id="4"/> <Day id="5"/> <Day id="6"/> </Schedule> <Squads> <Squad timebeg="900" timeend="1140" id="1" group="1" name="Level 8,9,10" description="Girls Optionals Level 8,9,10"> <Days> <Day id="1"/> <Day id="3"/> <Day id="5"/> </Days> </Squad> <Squad timebeg="900" timeend="1140" id="3" group="1" name="Level 7" description="Girls Optional Levels 7"> <Days> <Day id="1"/> <Day id="3"/> <Day id="5"/> </Days> </Squad> <Squad timebeg="900" timeend="1140" id="3" group="2" name="Level 6" description="Girls Compulsory Team Level 6"> <Days> <Day id="1"/> <Day id="3"/> <Day id="5"/> </Days> </Squad> </Squads> <groups> <group id="1" name="Optional Team" description="Girls Optional Team"/> </groups> <events> <event id="1" name="Bars" description="Women's Uneven Bars" location="1"/> </events> <locations> <location id="1" map="C4" description="Girls Comp Bar Area"/> </locations> <Days> <Day id="1">Monday</Day> <Day id="2">Tuesday</Day> <Day id="3">Wednesday</Day> <Day id="4">Thursday</Day> <Day id="5">Friday</Day> <Day id="6">Saturday</Day> <Day id="7">Sunday</Day> </Days> </SCHED> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:output indent="yes"/> <xsl:template match="/"> equal: <xsl:copy-of select="/SCHED/Schedule/Day/Squad/event[@id='2'] [@timebeg = ../preceding-sibling::Squad/event[@id='2']/@timebeg] "/> overlap: <xsl:for-each select="/SCHED/Schedule/Day/Squad/event[@id='1']"> <xsl:if test="../../Squad/event[@id='1'][generate-id()!=generate-id(current())] [@timebeg <= current()/@timebeg and @timeend >= current()/@timebeg]"> <xsl:copy-of select="."/> </xsl:if> </xsl:for-each> </xsl:template> </xsl:stylesheet> $ saxon squad.xml squad.xsl <?xml version="1.0" encoding="utf-8"?> equal: <event id="2" timebeg="960" timend="1020"/> overlap: <event id="1" timebeg="1350" timeend="1500"/> David ________________________________________________________________________ This e-mail has been scanned for all viruses by Star Internet. The service is powered by MessageLabs. For more information on a proactive anti-virus service working around the clock, around the globe, visit: http://www.star.net.uk ________________________________________________________________________
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] Match nodes with a range of v, Karl J. Stubsjoen | Thread | Re: [xsl] Match nodes with a range , David Carlisle |
[xsl] Match nodes with a range of v, Karl J. Stubsjoen | Date | Re: [xsl] selecting elements from a, David Carlisle |
Month |