Cyberfuzzy: xsl:for-each - nur das erste Ergebnis

Hallo,

ich hätte gerne bei einem xsl:for-each nur das erste Ergebnis, dass gefunden wird.

Ich dachte, ich setzte einfach eine Variable, die ich mit IF abfrage, damit er nur einmal einen value-of macht. Aber das funktioniert leider nicht, da er schon beim ersten Durchlauf meckert, dass die Variable nicht vorhanden ist.

<xsl:for-each select="test/MI">
<xsl:sort select="." order="ascending"/>
<xsl:if test="$testvariable != 'a'">
<xsl:value-of select="."/><br/>
<xsl:variable name="testvariable" select="a"/>
</xsl:if>
</xsl:for-each>

Hat jemand eine bessere Idee?

Gruß
Cyberfuzzy
--
http://www.cyberfuzzy.com

  1. Hi,

    ich hätte gerne bei einem xsl:for-each nur das erste Ergebnis, dass gefunden wird.

    warum willst Du dann for-each einsetzen?

    Cheatah

    --
    X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
    1. warum willst Du dann for-each einsetzen?

      Gibt es eine andere Möglichkeit? Ich brauche ja die Sortierung, er soll z. B. die größte Zahl nehmen die er unter allen findet.

  2. Hallo,

    Ich dachte, ich setzte einfach eine Variable, die ich mit IF abfrage, damit er nur einmal einen value-of macht. Aber das funktioniert leider nicht, da er schon beim ersten Durchlauf meckert, dass die Variable nicht vorhanden ist.

    Logisch, denn du definierst die Variable erst, nachdem du sie bereits aufgerufen hast.

    <xsl:if test="$testvariable != 'a'">

    »» <xsl:variable name="testvariable" select="a"/>

    </xsl:if>

    Hat jemand eine bessere Idee?
    "er soll z. B. die größte Zahl nehmen die er unter allen findet."

    <xsl:for-each select="test/MI">
     <xsl:sort select="." data-type="number" order="descending" />
     <xsl:variable name="pos" select="position()" />
     <xsl:if test="$pos = 1">
      <xsl:value-of select="." />
     </xsl:if>
    </xsl:for-each>

    Grüße
    Thomas

    1. Guten Morgen Thomas,

      vielen Dank. Das hat mir weiter geholfen ;-)

      Grüße
      Cyberfuzzy
      --
      http://www.cyberfuzzy.com