|
Subject: [xsl] Urgent Help Needed in XSLT From: "Kong, Yan" <KongY@xxxxxxxxxxx> Date: Fri, 20 Sep 2002 16:44:29 -0400 |
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
| Current Thread |
|---|
| <- Previous | Index | Next -> |
|---|---|---|
| Re: [xsl] Match values? (sorry so b, Joerg Heinicke | Thread | RE: [xsl] Urgent Help Needed in XSL, Marrow |
| RE: [xsl] filter based on parameter, Passin,Thomas B. (To | Date | [xsl] Minimum value, Avula, Raj |
| Month |