W3C home > Mailing lists > Public > www-style@w3.org > December 2000

Re: Sorting XML

From: Eric van der Vlist <vdv@dyomedea.com>
Date: Mon, 11 Dec 2000 08:41:45 +0100
Message-ID: <3A348539.B718CBD@dyomedea.com>
To: Giuseppe Fanuzzi <gifa75@yahoo.it>
CC: www-style@w3.org
Giuseppe Fanuzzi wrote:
> 
> Hi people!
> Someone knows how sorting no alphabeticly and no
> numberly a list of XML data using XSL?

You need to do a kind of "join" with a list of possible values that can
be embedded in the stylesheet itself.
 
> Example:
> I would sorting the follow list
> Major, Minor and Open_issue
> 
> in this specific order:
> Major, Open_issue, Minor
> 
> How does it work?

Can be something like:

====GiUSEpPe.xml:
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="GiUSEpPe.xslt"?>
<issues>
	<issue>Major</issue>
	<issue>Minor</issue>
	<issue>Open_issue</issue>
</issues>

====GiUSEpPe.xslt:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
	xmlns:g="http://4xt.org/ns/GiUSEpPe" exclude-result-prefixes="g">
	<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
	<xsl:variable name="issues"
select="document('')/xsl:stylesheet/g:issues"/>
	
	<g:issues >
		<issue>Major</issue>
		<issue>Open_issue</issue>
		<issue>Minor</issue>
	</g:issues>
	
	<xsl:template match="/">
		<ul>
			<xsl:apply-templates select="/issues/issue">
				<xsl:sort data-type="number"
select="count($issues/issue[.=current()]/preceding-sibling::*)"/>
			</xsl:apply-templates>
		</ul>
	</xsl:template>
	
	<xsl:template match="issue">
		<li>
			<xsl:value-of select="."/> 
				<xsl:comment> 
					position=<xsl:value-of
select="count($issues/issue[.=current()]/preceding-sibling::*)"/> 
				</xsl:comment>
			</li>
	</xsl:template>
</xsl:stylesheet>

====result:
<?xml version="1.0" encoding="utf-8"?>
<ul>
<li>Major<!--
                                        position=0-->
</li>
<li>Open_issue<!--
                                        position=1-->
</li>
<li>Minor<!--
                                        position=2-->
</li>
</ul>

Eric

> Thanks
> 
-- 
------------------------------------------------------------------------
Eric van der Vlist       Dyomedea                    http://dyomedea.com
http://xmlfr.org         http://4xt.org              http://ducotede.com
------------------------------------------------------------------------
Received on Monday, 11 December 2000 02:39:38 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Monday, 27 April 2009 13:54:06 GMT