This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
Urgent Help Needed in XSLT
- From: "Kong, Yan" <KongY at corning dot com>
- To: "'XSL-List at lists dot mulberrytech dot com <XSL-List at lists dot mulberrytech dot com>'"<XSL-List at lists dot mulberrytech dot com>
- Date: Fri, 20 Sep 2002 16:44:29 -0400
- Subject: [xsl] Urgent Help Needed in XSLT
- Reply-to: xsl-list at lists dot mulberrytech dot com
Hi XSLT Professionals,
I'm a beginner of XSLT. I have following XML that used by a discussion group:
<?xml version="1.0" encoding="ISO-8859-1"?>
<livelink applanguage='USA' appversion='9.1.0' dtdversion='1.2'>
<llnode created='2002-09-19T14:42:37' name='1st Topic' objname='Topic' size='0'>
<message>1st Topic in Char</message>
</llnode>
<llnode created='2002-09-19T14:42:50' name='2nd Topic' objname='Topic' size='0'>
<message>2nd Topic in Char</message>
</llnode>
<llnode created='2002-09-19T14:43:01' name='3rd Topic' objname='Topic' size='0'>
<message>3rd Topic</message>
</llnode>
<llnode created='2002-09-19T14:43:09' name='4th Topic' objname='Topic' size='0'>
<message>4th Topic</message>
</llnode>
<llnode created='2002-09-19T14:43:18' name='5th Topic' objname='Topic' size='2'>
<message>5th Topic</message>
<llnode created='2002-09-19T14:44:47' name='1st Reply' objname='Reply' size='1'>
<message>1st Reply</message>
<llnode created='2002-09-19T14:47:59' name='reply' objname='Reply' size='1'>
<message>reply</message>
<llnode created='2002-09-19T15:09:54' name='reply' objname='Reply' size='1'>
<message>reply</message>
<llnode created='2002-09-19T15:14:17' name='reply' objname='Reply' size='0'>
<message>reply</message>
</llnode>
</llnode>
</llnode>
</llnode>
<llnode created='2002-09-19T14:49:36' name='reply' objname='Reply' size='0'>
<message>reply</message>
</llnode>
</llnode>
<llnode created='2002-09-19T14:49:08' name='6th Topic' objname='Topic' size='1'>
<message>6th Topic</message>
<llnode created='2002-09-19T14:53:47' name='reply' objname='Reply' size='0'>
<message>reply</message>
</llnode>
</llnode>
<llnode created='2002-09-19T14:42:04' name='7th Topic' objname='Topic' size='0'>
<message>7th Topic</message>
</llnode>
<llnode created='2002-09-19T14:43:26' name='8th Topic' objname='Topic' size='1'>
<message>8th Topic</message>
<llnode created='2002-09-19T14:44:34' name='1st Reply' objname='Reply' size='1'>
<message>1st Reply</message>
<llnode created='2002-09-19T14:50:09' name='reply' objname='Reply' size='0'>
<message>reply</message>
</llnode>
</llnode>
</llnode>
<llnode created='2002-09-19T14:41:36' name='9th Topic' parentid='-267307' size='0'>
<message>9th Topic</message>
</llnode>
<llnode created='2002-09-19T14:41:53' name='10th Topic' parentid='-267307' size='0'>
<message>10th Topic</message>
</llnode>
<llnode created='2002-09-19T15:02:00' name='11th Topic' parentid='-267307' size='1'>
<message>11th Topic</message>
<llnode created='2002-09-19T15:03:10' name='reply' parentid='268284' size='1'>
<message>reply</message>
<llnode created='2002-09-19T15:04:52' name='reply' parentid='268285' size='1'>
<message>reply</message>
<llnode created='2002-09-19T15:06:37' name='reply' parentid='268504' size='0'>
<message>reply</message>
</llnode>
</llnode>
</llnode>
</llnode>
<llnode created='2002-09-19T14:41:36' name='12th Topic' parentid='-267307' size='0'>
<message>12th Topic</message>
</llnode>
......
</llnode>
</livelink>
I need to create a html to get the latest 10 Discussion Topic. I did following XSLT:
<xsl:stylesheet xmlns:xsl = "http://www.w3.org/1999/XSL/Transform" version = "1.0" >
<xsl:output method = "html" />
<xsl:template match="livelink">
<html>
<body>
<table>
<tr>
<td><b><br/>Latest Discussion Posts
</b></td>
</tr>
<xsl:for-each select="//*[@objname='Topic'] | //*[@objname='Reply']">
<xsl:sort select="@created" order="descending" />
<xsl:if test="position() < 11">
<tr>
<td>
<xsl:value-of select="ancestor-or-self::*[@objname='Topic']/@name" />
<xsl:text> - </xsl:text>
<xsl:value-of select="@created" />
</td>
</tr>
</xsl:if>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
The output is as follows:
Latest Discussion Posts
5th Topic - 2002-09-19T15:14:17
5th Topic - 2002-09-19T15:09:54
11th Topic - 2002-09-19T15:06:37
11th Topic - 2002-09-19T15:04:52
11th Topic - 2002-09-19T15:03:10
11th Topic - 2002-09-19T15:02:00
......
The above output isn't what I want. I want each topic only display once.
I have struggled with the problem for three days. Could you please help me with this? I will really appreciate it.
Thanks in advance,
Yan
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list