Subject: RE: [xsl] Getting unique nodes filtering by several attributes and mixing files From: Jarno.Elovirta@xxxxxxxxx Date: Tue, 25 Nov 2003 10:45:23 +0200 |
Hi, > One of the XML files (week_schedule.xml) is the list of > programs to be on > air for > two different TV channels. This list contains an "onAir" node for each > advertisment > (commercials) block. It's the only way to know which programs > will be on air > next > week, yes :( … > <!-- my_would_be_even_better_result.xml --> > <?xml version="1.0" encoding="ISO-8859-1"?> > <tv> > <program progName='Friends' date='17/11/2003' > channel='1' weekDay='Mon' start='10:00' end='10:45' > ads='10:15,10:30'/> > <program progName='Friends' date='23/11/2003' > channel='1' weekDay='Sun' start='09:00' end='09:45' > ads='14:15,14:30,...'/> > <program progName='X-Files' date='22/11/2003' > channel='2' weekDay='Sat' start='14:00' end='15:30' > ads='09:15,09:30'/> > </tv> <xsl:variable name="sep" select="''"/> <xsl:variable name="schedule" select="document('week_schedule.xml', /)"/> <xsl:key name="lookup" match="onAir" use="concat(@progName, $sep, @weekDay, $sep, @channel)"/> <xsl:template match="programs"> <tv> <xsl:for-each select="program"> <xsl:copy> <xsl:variable name="key" select="concat(@progName, $sep, @weekDay, $sep, @channel)"/> <xsl:for-each select="$schedule"> <xsl:variable name="air" select="key('lookup', $key)"/> <xsl:copy-of select="$air/@date"/> <xsl:attribute name="adsAt"> <xsl:for-each select="$air/@adsAt"> <xsl:if test="not(position() = 1)">,</xsl:if> <xsl:value-of select="."/> </xsl:for-each> </xsl:attribute> </xsl:for-each> <xsl:copy-of select="@*"/> </xsl:copy> </xsl:for-each> </tv> </xsl:template> Will you get you almost there, you just need to add sorting based on program name and airdate—you need to do a look up to get the date, but you can't use the key for that, sorry. See the FAQ on how to sort dates. Cheers, Jarno - Revolution By Night: Faithless (Edit) (by Ronan Harris) XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] Getting unique nodes filterin, Iván Montoro Ten | Thread | RE: [xsl] Getting unique nodes filt, Iván Montoro Ten |
Re: [xsl] Re: Re: Sibling in the Pa, Dongling Ding | Date | RE: [xsl] parsing post script, Michael Müller-Hille |
Month |