Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
XSLT Stylesheet anpassen [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr
ebiz-webhosting
- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
XSLT Stylesheet anpassen


 
cledith
23-09-2007, 20:51 
 
Hallo,
ich habe eine Frage zur Transformation von XML Dateien in HTML Dateien.

XSLT erlaubt ja z.B. mehrere Kinder eines Knotens numerisch zu sortieren. Meine Frage dabei ist jedoch, wie ich dynamisch festlegen kann, ob er die Einträge auf- oder absteigend sortieren kann.

Ich bentutze die XSL Ext. von PHP 5, um die Transformation durchzuführen.

Ich möchte jetzt je nach Einstellung durch den Benutzer (z.B. durch eine $GET Variable "order=asc" oder "order=desc") die Liste aufsteigend oder absteigend sortieren lassen. Ist das irgendwie möglich? Ich bin der Meinung die Mächtigkeit von XSL Transformationen verstanden zu haben, nur macht mir das ganze einen sehr statischen Eindruck.

Ich hoffe mir kann jmd. helfen. Vielen Dank schon jetzt!

 
tontechniker
23-09-2007, 21:07 
 
Du setzt mit PHP eine Variable wie du das sortieren willst und entscheidenst dann. Statisch ist XSLT keineswegs.

 
cledith
23-09-2007, 21:21 
 
[i]Statisch ist XSLT keineswegs. [/B]
Das habe ich mir schon gedacht, nur weiß ich nicht, wie ich das anstellen soll. Wie bekomme ich denn die PHP Variable in das XSLT Sheet?

Quatsch Kann ich die Werte dem XSL Parser irgendwie übergeben?

 
tontechniker
24-09-2007, 20:07 
 
Wie wäre es mit Manual lesen (http://de.php.net/manual/de/function.xsl-xsltprocessor-set-parameter.php)?

 
cledith
25-09-2007, 11:00 
 
Jap, so einfach kann es sein. Vielen Dank.

 
Quetschi
25-09-2007, 11:01 
 
Wenn du mit xsl:number arbeiten willst, bekommst du glaub ich keine absteigende Nummerierung hin.

Mit xsl:for-each und xsl:sort lässt sich zwar die Sortierung der Elemente selbst beeinflussen aber so wie ich das lese nicht die Nummerierung die sich ja mit xsl:number bequem erzeugen liese - die ist wohl immer aufsteigend - du müsstest also die Nummerierung schon als Element oder Attribut im Quell-Xml (das du ja evtl. eh via PHP->dom o.ä. erzeugst) einfügen und da auch schon die Sortierung der Elemente festlegen.

http://de.selfhtml.org/xml/darstellung/xsltelemente.htm

EDIT:
ah - da hab ich was übersehen.

 
cledith
25-09-2007, 12:19 
 
Ich muss sagen, dass ich die Nummerierung mit xsl:number im Falle von HTML eher als redundant betrachte. Da die Liste formatiert werden möchte, es dazu <ol> Elemente gibt, verzichte ich auf xsl:number. Unterm Strich macht man sich mehr Arbeit durch die Verwendung von xsl:number.

 
Quetschi
25-09-2007, 12:29 
 
Kommt letztlich auf den entsprechenden Content an - will man z.B. eine Rangliste von nem Turnier, Wettbewerb o.ä. ausgeben, dann würd ich es wahrscheinlich bevorzugen die Nummerierung im Quelltext zu haben - weiß jetzt gar nicht wie z.B. google ansonsten eine ol indizieren würde - da würde man dann wahrscheinlich in der Trefferanzeige ja die Platzierung gar nicht sehen, oder?

 
cledith
25-09-2007, 13:40 
 
Sehr gut, da ist was wahres dran. Dann verknüpfe ich natürlich die Nummer mit dem Element, das dahinter steht. In meinem Fall benutze ich es nur für eine Auflistung und da steht natürlich die 1. immer an erster Stelle, egal wie sortiert wird. Wenn ich es für eine Rangliste mache, dann kann ich den zusätzlichen Aufwand auch gutheißen. ;)

- -

Alle Zeitangaben in WEZ +2. Es ist jetzt 08:19 Uhr.