Subject: Re: [xsl] grouping, sorting and selection by language(s) From: chunga srevenge <chunga_srevenge@xxxxxxxx> Date: Sat, 5 Feb 2005 09:42:30 -0500 (EST) |
Wendell, Here's the XML file <?xml version="1.0" encoding="ISO-8859-1"?> <articles> <article lang="fr"><category>Catigorie 1</category> <source>Publication in French</source><date pubdate="20050124">24/01/2004</date><art_title>Title of the first article in French</art_title><firstpara>First paragraph</firstpara><link>http://www.anyurl.com/...</link> </article> <article lang="en"><category>Category 3</category> <source>English-language publication</source> <date pubdate="20041221">21/12/2004</date> <art_title>Title of the first article in English</art_title><firstpara>First paragraph</firstpara><link>http://www.anyurl.com/..</link> </article> <article lang="de"><category>Kategorie 1</category> <source>German-language publication</source><date pubdate="20040724">24/07/2004</date><art_title>Title of the first article in German</art_title><firstpara>First paragraph</firstpara><link>http://www.anyurl.com/..</link> </article> <article lang="fr"><category>Catigorie 2</category> <source>Publication in French</source><date pubdate="20040302">02/03/2004</date><art_title>Title of the second article in French</art_title><firstpara>First paragraph</firstpara><link>http://www.anyurl.com/..</link> </article> <article lang="nl"><category>Categorie 1</category> <source>Dutch-language publication</source><date pubdate="20041119">19/11/2004</date><art_title>Title of the first article in Dutch</art_title><firstpara>First paragraph</firstpara><link>http://www.anyurl.com/..</link> </article> <article lang="de"><category>Kategorie 3</category> <source>German-language publication</source><date pubdate="20031224">24/12/2003</date><art_title>Title of the second article in German</art_title><firstpara>First paragraph</firstpara><link>http://www.anyurl.com/..</link> </article> <article lang="nl"><category>Categorie 2</category> <source>Dutch-language publication</source><date pubdate="20040919">19/09/2004</date><art_title>Title of the second article in Dutch</art_title><firstpara>First paragraph</firstpara><link>http://www.anyurl.com/..</link> </article> <article lang="en"><category>Category 1</category><source>English-language publication</source><date pubdate="20040621">21/06/2004</date><art_title>Title of the second article in English</art_title><firstpara>First paragraph</firstpara><link>http://www.anyurl.com/..</link> </article> <article lang="de"><category>Kategorie 3</category> <source>German-language publication</source><date pubdate="20041029">29/10/2004</date><art_title>Title of the third article in German</art_title><firstpara>First paragraph</firstpara><link>http://www.anyurl.com/..</link> </article> <article lang="fr"><category>Catigorie 4</category> <source>Publication in French</source><date pubdate="20030320">20/03/2003</date><art_title>Title of the third article in French</art_title><firstpara>First paragraph</firstpara><link>http://www.anyurl.com/..</link> </article> <article lang="en"><category>Category 2</category> <source>English-language publication</source><date pubdate="20030512">12/05/2003</date><art_title>Title of the third article in English</art_title><firstpara>First paragraph</firstpara><link>http://www.anyurl.com/..</link> </article> <article lang="nl"><category>Categorie 3</category> <source>Dutch-language publication</source><date pubdate="20031017">17/10/2003</date><art_title>Title of the third article in Dutch</art_title><firstpara>First paragraph</firstpara><link>http://www.anyurl.com/..</link> </article> </articles> The XSL: <?xml version="1.0" encoding="ISO-8859-1"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method ="html" encoding="ISO-8859-1" /> <xsl:key name ="articles-by-category" match ="article" use ="category" /> <xsl:template match="articles"> <h2>Articles en frangais</h2> <xsl:for-each select ="article[@lang='fr' and count(.|key('articles-by-category', category)[1])=1]"> <xsl:sort select="category" /> <h3><xsl:value-of select="category" /></h3><br/> <xsl:for-each select="key('articles-by-category', category)"> <xsl:sort select="date/@pubdate" order="descending"/> <xsl:if test="position() <3"> <i><xsl:value-of select="source"/> - <xsl:value-of select="date" /></i><br/> <h4><xsl:value-of select="art_title"/></h4><br/> <xsl:value-of select="firstpara"/> .. <a><xsl:attribute name="href"> <xsl:value-of select="link"/> </xsl:attribute>lire l'article</a><br/><br/> </xsl:if> </xsl:for-each> </xsl:for-each> <h2>Artikeln in deutscher Sprache</h2> <xsl:for-each select ="article[@lang='de' and count(.|key('articles-by-category', category)[1])=1]"> <xsl:sort select="category" /> <h3><xsl:value-of select="category" /></h3><br/> <xsl:for-each select="key('articles-by-category', category)"> <xsl:sort select="date/@pubdate" order="descending"/> <xsl:if test="position() <3"> <i><xsl:value-of select="source"/> - <xsl:value-of select="date" /></i><br/> <h4><xsl:value-of select="art_title"/></h4><br/> <xsl:value-of select="firstpara"/> .. <a><xsl:attribute name="href"> <xsl:value-of select="link"/> </xsl:attribute>Zum kompletten Artikel</a><br/><br/> </xsl:if> </xsl:for-each> </xsl:for-each> </xsl:template> </xsl:stylesheet> Hope it's not truncated this time. Would appreciate ideas to make xslt shorter or server-friendlier ______________________________________________________________________ Post your free ad now! http://personals.yahoo.ca
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] grouping, sorting and sel, Wendell Piez | Thread | Re: [xsl] grouping, sorting and sel, Wendell Piez |
Re: [xsl] WordML to XML/HTML, Joris Gillis | Date | [xsl] Selecting last text() from fr, Adam Desaulniers |
Month |