Plik XML jakiś tam:
<?xml version="1.0" encoding="iso-8859-2" ?>
<?xml-stylesheet type="text/xsl" href="nazw.xsl"?>
<!DOCTYPE pilkarze [
<!ELEMENT pilkarze (pilkarz*)>
<!ELEMENT pilkarz (imie,nazwisko,data_urodzenia,klub,pozycja,bramek)>
<!ELEMENT imie (#PCDATA)>
<!ELEMENT nazwisko (#PCDATA)>
<!ELEMENT data_urodzenia (#PCDATA)>
<!ELEMENT klub (#PCDATA)>
<!ELEMENT pozycja (#PCDATA)>
<!ELEMENT bramek (#PCDATA)>]>
<pilkarze>
<pilkarz>
<imie>Roberto</imie>
<nazwisko>Baggio</nazwisko>
<data_urodzenia>18.02.1967</data_urodzenia>
<klub>Brescia</klub>
<pozycja>napastnik</pozycja>
<bramek>216</bramek>
</pilkarz>
<pilkarz>
<imie>Roy</imie>
<nazwisko>Keane</nazwisko>
<data_urodzenia>10.08.1971</data_urodzenia>
<klub>Celtic FC</klub>
<pozycja>napastnik</pozycja>
<bramek>74</bramek>
</pilkarz>
<pilkarz>
<imie>Luis</imie>
<nazwisko>Enrigue</nazwisko>
<data_urodzenia>08.05.1970</data_urodzenia>
<klub>FC Barcelona</klub>
<pozycja>Pomocnik</pozycja>
<bramek>12</bramek>
</pilkarz>
<pilkarz>
<imie>Lilian</imie>
<nazwisko>Thuram</nazwisko>
<data_urodzenia>01.01.1972</data_urodzenia>
<klub>FC Barcelona</klub>
<pozycja>Obrońca</pozycja>
<bramek>47</bramek>
</pilkarz>
<pilkarz>
<imie>Michael</imie>
<nazwisko>Platini</nazwisko>
<data_urodzenia>21.06.1955</data_urodzenia>
<klub>Juventus Turyn</klub>
<pozycja>Ofensywa</pozycja>
<bramek>60</bramek>
</pilkarz>
<pilkarz>
<imie>Michael</imie>
<nazwisko>Owen</nazwisko>
<data_urodzenia>14.12.1979</data_urodzenia>
<klub>Newcastle United</klub>
<pozycja>Napastnik</pozycja>
<bramek>174</bramek>
</pilkarz>
<pilkarz>
<imie>George</imie>
<nazwisko>Weah</nazwisko>
<data_urodzenia>01.10.1966</data_urodzenia>
<klub>Manchester City</klub>
<pozycja>Napastnik</pozycja>
<bramek>30</bramek>
</pilkarz>
<pilkarz>
<imie>Dino</imie>
<nazwisko>Zoff</nazwisko>
<data_urodzenia>28.02.1942</data_urodzenia>
<klub>Juventus Turyn</klub>
<pozycja>Pomocnik</pozycja>
<bramek>32</bramek>
</pilkarz>
<pilkarz>
<imie>Zinedine</imie>
<nazwisko>Zidane</nazwisko>
<data_urodzenia>23.06.1972</data_urodzenia>
<klub>Real Madryt</klub>
<pozycja>Napastnik</pozycja>
<bramek>135</bramek>
</pilkarz>
<pilkarz>
<imie>Rob</imie>
<nazwisko>Rensenbrink</nazwisko>
<data_urodzenia>03.07.1947</data_urodzenia>
<klub>Toulouse FC</klub>
<pozycja>Lewoskrzydłowy</pozycja>
<bramek>75</bramek>
</pilkarz>
<pilkarz>
<imie>Andrij</imie>
<nazwisko>Szewczenko</nazwisko>
<data_urodzenia>29.09.1976</data_urodzenia>
<klub>AC Milan</klub>
<pozycja>Lewoskrzydłowy</pozycja>
<bramek>190</bramek>
</pilkarz>
<pilkarz>
<imie>Alan</imie>
<nazwisko>Shearer</nazwisko>
<data_urodzenia>13.08.1970</data_urodzenia>
<klub>Southampton F.C.</klub>
<pozycja>Napastnik</pozycja>
<bramek>100</bramek>
</pilkarz>
<pilkarz>
<imie>Omar</imie>
<nazwisko>Sivori</nazwisko>
<data_urodzenia>02.10.1935</data_urodzenia>
<klub>Juventus Turyn</klub>
<pozycja>Napastnik</pozycja>
<bramek>26</bramek>
</pilkarz>
<pilkarz>
<imie>Nílton</imie>
<nazwisko>Santos</nazwisko>
<data_urodzenia>16.05.1927</data_urodzenia>
<klub>Botafogo Rio de Janeiro</klub>
<pozycja>Pomocnik</pozycja>
<bramek>34</bramek>
</pilkarz>
<pilkarz>
<imie>Karl-Heinz</imie>
<nazwisko>Rummenigge</nazwisko>
<data_urodzenia>25.09.1955</data_urodzenia>
<klub>Servette Genewa</klub>
<pozycja>Napastnik</pozycja>
<bramek>45</bramek>
</pilkarz>
</pilkarze>
Kod sortujący w XSL:
<?xml version="1.0" encoding="ISO-8859-2" ?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html"/>
<xsl:template match="/">
<xsl:apply-templates/>
</xsl:template>
<xsl:template match="pilkarze">
<HTML>
<HEAD> <TITLE> Pilkarze </TITLE></HEAD>
<BODY>
<div align="center">
<table style="border: 1px dashed black;">
<tr>
<td style="border: 1px solid black; text-align:center;">
<b>Id</b>
</td>
<td style="border: 1px solid black; text-align:center;">
<b>Imie</b>
</td>
<td style="border: 1px solid black; text-align:center;">
<b>Nazwisko</b>
</td>
<td style="border: 1px solid black; text-align:center;">
<b>Data Urodzenia</b>
</td>
<td style="border: 1px solid black; text-align:center;">
<b>Klub</b>
</td>
<td style="border: 1px solid black; text-align:center;">
<b>Pozycja</b>
</td>
<td style="border: 1px solid black; text-align:center;">
<b>Bramki</b>
</td>
</tr>
<xsl:for-each select="//pilkarz">
<xsl:sort select="nazwisko" data-type="text" order="ascending"/>
<tr>
<td style="border-left:1px solid black;
border-bottom: 1px solid black; border-right: 1px solid black; padding-left:3px;
padding-right:3px;">
<xsl:number/>
</td>
<td style="font-size:14pt; color:blue; border-left: 1px solid black;
border-bottom: 1px solid black; border-right: 1px solid black; padding-left:3px;
padding-right:3px;font-family:'Times New Roman', Times, serif">
<xsl:value-of select="imie"/>
</td>
<td style="border-left:1px solid black;
border-bottom: 1px solid black; border-right: 1px solid black; padding-left:3px;
padding-right:3px;">
<xsl:value-of select="nazwisko"/>
</td>
<td style="font-weight: bold; text-align:center; border-left:1px solid black;
border-bottom: 1px solid black; border-right: 1px solid black; padding-left:3px;
padding-right:3px;">
<xsl:value-of select="data_urodzenia"/>
</td>
<td style="border-left:1px solid black;
border-bottom: 1px solid black; border-right: 1px solid black; padding-left:3px;
padding-right:3px;">
<xsl:value-of select="klub"/>
</td>
<td style="border-left:1px solid black;
border-bottom: 1px solid black; border-right: 1px solid black; padding-left:3px;
padding-right:3px;">
<xsl:value-of select="pozycja"/>
</td>
<td style="font-style:italic; font-size:12pt; border-left:1px solid black;
border-bottom: 1px solid black; border-right: 1px solid black; padding-left:3px;
padding-right:3px;">
<xsl:value-of select="bramek"/>
</td>
</tr>
</xsl:for-each>
</table>
</div>
<HR/>
<a href="plik.xml">Wszyscy pilkarze z bazy danych</a><BR/>
<a href="urodzeni.xml">Urodzeni w roku 1972</a><BR/>
<a href="imie.xml">Imie: Michael</a><BR/>
<strong>Sortuj według</strong><BR/>
<a href="nazw.xml">Nazwisk</a><BR/>
<a href="klub.xml">Klubu</a><BR/>
<a href="bramki.xml">Ilości strzelonych bramek</a><BR/>
<HR/>
Dane Pobrane ze strony:<a href="http://pl.wikipedia.org/wiki/Kategoria:Piłkarze_FIFA_100" title="Szczegółowe informacje">
pl.wikipedia.org</a>
</BODY>
</HTML>
</xsl:template>
</xsl:stylesheet>
Nie dawno całkiem pisałem aplikację dla XML i miałem tam dokładnie ten sam problem co ty musiałem sortować dane, tyle że nie w kolejności alfabetycznej tylko wg dat. użyłem do tego funkcji parsujących XML i jakiejść funkcji do XSLT, z tego co pamiętam funkcja do XSLT mnie mocno zawiodła bo nie zadziałała tak jak sobie tego zażyczyłem tzn. formatowanie się zgadzało, dane były wyświetlane w tabeli w odpowiedni żądany przeze mnie sposób z tym że nie posortowało mi tego wg dat ani wg żadnych innych kryteriów, wkurzyłem się mocno (po długim czasie czytania dokumentacji DOMXML oraz SimpleXML i jeszcze jakiejść tam

). więc poszedłem nieco na około i załadowałem cały plik XML do tablicy asocjacyjnej (przydaje się funkcja
<?php
?>
) a następnie posortowałem sobie ją wykorzystując funkcję uasort i tyle :] W sumie zastanawiam się co by się stało gdyby plik XML zawierał baaaardzo dużo rekordów, ale ja w moim przypadku nie było to aż tak istotne. PZDR