XSLT Stylesheet anpassen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • XSLT Stylesheet anpassen

    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!

  • #2
    Du setzt mit PHP eine Variable wie du das sortieren willst und entscheidenst dann. Statisch ist XSLT keineswegs.
    Die Regeln | rtfm | register_globals | strings | SQL-Injections | [COLOR=silver][[/COLOR][COLOR=royalblue]–[/COLOR][COLOR=silver]][/COLOR]

    Kommentar


    • #3
      [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?

      EDIT:
      Quatsch
      Kann ich die Werte dem XSL Parser irgendwie übergeben?
      Zuletzt geändert von cledith; 23.09.2007, 20:24.

      Kommentar


      • #4
        Wie wäre es mit Manual lesen?
        Die Regeln | rtfm | register_globals | strings | SQL-Injections | [COLOR=silver][[/COLOR][COLOR=royalblue]–[/COLOR][COLOR=silver]][/COLOR]

        Kommentar


        • #5
          Jap, so einfach kann es sein. Vielen Dank.

          Kommentar


          • #6
            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.
            Zuletzt geändert von Quetschi; 25.09.2007, 10:06.
            Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
            Schön - etwas Geschichte kann ja nicht schaden.
            Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!

            Kommentar


            • #7
              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.

              Kommentar


              • #8
                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?
                Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
                Schön - etwas Geschichte kann ja nicht schaden.
                Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!

                Kommentar


                • #9
                  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.

                  Kommentar

                  Lädt...
                  X