Announcement

Collapse
No announcement yet.

mehrere variable sortieren?

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • mehrere variable sortieren?

    Hallo ich (newbie) habe folgendes Problem:
    ich habe eine XML struktur..
    aus dieser habe ich verschiedene Teile in Variablen gespeichert...

    bsp:
    <xsl:variable name="wert_1">
    <xsl:value-of select="xx/xx/.."
    </xsl:variable>

    <xsl:variable name="wert_2">
    <xsl:value-of select="xx/xx/..."
    </xsl:variable>
    usw..

    desweiteren musste ich noch eine variable (angenommen) wert_3 anlegen.. weil in der xml struktur noch ein wert, ein dummy sozusagen, feht. In Zukunft wird der wert xml erscheinen aber solange muss ein dummy wert herhalten.. (urrrgggs)

    jetzt muss ich die besagte variablen ausgeben und zwar (wertemäßig)sortiert bei 3 Variablen gut geht noch per hand aber bei 10? und dann einmal höchster wert dann mal nur 2 höchster usw...nur wie?

    wäre der der Wert schon in der xml könnte ich einfach aus der struktur for-each den knoten lesen und sort anwenden ... schön.. leider geht das ja nicht weil ein wert fehlt...und ich jetzt alles in einzelne variablen habe..
    In ner Programmiersprache würde ich einfach die einzelnen variablen in ner liste abspeichern (oder array) und sortieren, aber hier?

    gibt es nee andere möglichkeit mehrere Variablen zu sortieren.

  • #2
    XSLT hat keine Listen und auch keine Arrays, aber es hat Mengen von Knoten (in XSLT 1.0) und Sequenzen von Knoten oder atomaren Werten (in XSLT 2.0). In XSLT 2.0 kann man also z.b. eine Variable definieren, die als Wert eine Sequenz hat:
    Code:
    <xsl:variable name="v1" select="($wert1, $wert2, 'dummy')"/>

    Comment


    • #3
      Originally posted by Martin Honnen View Post
      XSLT hat keine Listen und auch keine Arrays, aber es hat Mengen von Knoten (in XSLT 1.0) und Sequenzen von Knoten oder atomaren Werten (in XSLT 2.0). In XSLT 2.0 kann man also z.b. eine Variable definieren, die als Wert eine Sequenz hat:
      Code:
      <xsl:variable name="v1" select="($wert1, $wert2, 'dummy')"/>
      danke schonmal für den tip... leider ist es version 1. ich probierte schon sowas

      <xsl:variable name="alle_werte">
      <xsl:value-of select="$wert1"/>
      <xsl:value-of select="$wert2"/>
      <xsl:value-of select="$dummywert"/>
      <xsl:value-of select="$wert4"/>

      </xsl:variable>


      <xsl:variable name="sortiert">
      <xsl:for-each select="$alle_werte">
      <xsl:value-of select="$alle_werte"/>
      <xsl:sort.../>
      ..
      </xsl:for-each>

      nunja geht leider nicht so..


      </xsl:variable>

      Comment


      • #4
        Man kann auch in XSLT 1.0 Variablen mit Werten füllen, zur weiteren Verarbeitung mit XSLT/XPath brauch man aber eine Erweiterungsfunktion wie exsl:node-set http://www.exslt.org/exsl/functions/node-set/index.html. Damit kannst du Variablen mit XML-Inhalt füllen und diese auch weiterverabeiten.

        Comment


        • #5
          Originally posted by Martin Honnen View Post
          Man kann auch in XSLT 1.0 Variablen mit Werten füllen, zur weiteren Verarbeitung mit XSLT/XPath brauch man aber eine Erweiterungsfunktion wie exsl:node-set http://www.exslt.org/exsl/functions/node-set/index.html. Damit kannst du Variablen mit XML-Inhalt füllen und diese auch weiterverabeiten.
          hee.. danke das schau ich mir an..

          Comment

          Working...
          X