hallo,
Ich will nun diese Datei sortiert nach dem Datum ausgeben lassen.
okay, das mit dem Spalten ist soweit klar. Was soll ich für ein Format wählen?
ich habe mal deine datei genommen:
--------
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet type="text/xsl" href="caprior.xsl" ?>
<referenzen>
<referenz>
<titel>Titel der Referenz</titel>
<text>Ja, blabla und so...</text>
<datum>20-05-01</datum>
</referenz>
<referenz>
<titel>Titel der Referenz</titel>
<text>Ja, blabla und so...</text>
<datum>25-03-01</datum>
</referenz>
<referenz>
<titel>Titel der Referenz</titel>
<text>Ja, blabla und so...</text>
<datum>25-03-02</datum>
</referenz>
</referenzen>
------------
die xsl datei dazu:
-----------
<?xml version="1.0" encoding="iso-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/referenzen">
<html>
<head><title>Referenzen</title></head>
<body>
<xsl:for-each select="referenz">
<xsl:sort select="concat(substring(datum, 7, 2), substring(datum, 4, 2), substring(datum, 1, 2))" data-type="number" />
<p>
<b><xsl:value-of select="titel" /></b><br />
<xsl:value-of select="text" /><br />
<i><xsl:value-of select="datum" /></i>
</p>
</xsl:for-each>
</body></html>
</xsl:template>
</xsl:stylesheet>
----------
select="concat(substring(datum, 7, 2), substring(datum, 4, 2), substring(datum, 1, 2))
bewirkt, dass das datum von hinten (also jahr-monat-tag) ohne die bindestriche zu einem string konvertiert wird, diesen string sortieren wir mit: data-type="number".
Aber wie mach ich sowas innerhalb einer ASP-Seite von der aus ich auf das XML-File zugreiffe???
alles klar; aber mein Problem ist ein anderes: Eigentlich sollt ich XSLT server-seitig ausführen (nutze IIS 5.1). Ich möchte auch Variabeln (wohl via Querystring) an das XSL-File übergeben um das Datum dann aufwärts oder abwärts sortieren zu können. Wie mach ich sowas?
ich kann es dir nicht genau sagen, wie du es mit asp machst, aber du wirst vermutlich die xml datei als dom baum einlesen müssen und dann kannst du diese baum nach belieben sortiert ausgeben (wobei du dann die sortierkriterien als parameter in der url übergibst z.B. http://www.domain.de/referentzen/referenz.xml?sort=descending)
siehe auch den artikel von M$:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnexxml/html/xml092099.asp
Ziel ist es einfach das XML-File wie eine Datenbank nutzen zu können bei der ich Daten nach Kriterien auf- oder abwärts sortieren kann.
Irgendwie ein sql-befehl in XSLT.
_das_ ist wieder etwas völlig anderes!
dafür wird zur Zeit "XML Query" entwickelt:
http://www.w3.org/XML/Query
aber ich denke nicht, dass du das wirklich willst ;-)
grüße
thomas