Es muss in ein <xsl: select> eingeschlossen werden, da es ein Wann ist. Und Kleinbuchstaben das "und".
<xsl:choose><xsl:whentest="4 < 5 and 1 < 2"><!-- do something --></xsl:when><xsl:otherwise><!-- do something else --></xsl:otherwise></xsl:choose>
Wie xsl: if-Anweisungen, xsl: when-Elemente können detailliertere Inhalte zwischen ihren Start- und End-Tags enthalten, z. B. wörtliche Ergebniselemente, xsl: element-Elemente oder sogar xsl: if und xsl: select-Elemente, die hinzugefügt werden sollen der Ergebnisbaum. Ihre Testausdrücke können auch alle Tricks und Operatoren verwenden, die das Testattribut xsl: if-Element verwenden kann, z. B. und, und und Funktionsaufrufe, um komplexere boolesche Ausdrücke zu erstellen.
Vielleicht ist dies ein Kinderspiel für den xslt-Profi, aber für mich als Anfänger / Fortgeschrittene hat mich das verwirrt. Ich wollte genau das Gleiche tun, musste aber einen Antwortzeitwert aus einer XML-Datei anstelle einer einfachen Zahl testen. Nach diesem Thread habe ich Folgendes versucht:
<xsl:whentest="responsetime/@value >= 5000 and responsetime/@value <= 8999">
was einen Fehler erzeugte. Das funktioniert:
<xsl:whentest="number(responsetime/@value) >= 5000 and number(responsetime/@value) <= 8999">
Verstehe aber nicht wirklich, warum es ohne number () nicht funktioniert. Könnte es sein, dass der Wert ohne number () als Zeichenfolge behandelt wird und Sie keine Zahlen mit einer Zeichenfolge vergleichen können?
Wie auch immer, ich hoffe, das erspart jemandem viel Suche ...
Antworten:
Nicht ganz, das UND muss in Kleinbuchstaben geschrieben werden.
quelle
Es muss in ein <xsl: select> eingeschlossen werden, da es ein Wann ist. Und Kleinbuchstaben das "und".
quelle
Von XML.com :
quelle
Vielleicht ist dies ein Kinderspiel für den xslt-Profi, aber für mich als Anfänger / Fortgeschrittene hat mich das verwirrt. Ich wollte genau das Gleiche tun, musste aber einen Antwortzeitwert aus einer XML-Datei anstelle einer einfachen Zahl testen. Nach diesem Thread habe ich Folgendes versucht:
was einen Fehler erzeugte. Das funktioniert:
Verstehe aber nicht wirklich, warum es ohne number () nicht funktioniert. Könnte es sein, dass der Wert ohne number () als Zeichenfolge behandelt wird und Sie keine Zahlen mit einer Zeichenfolge vergleichen können?
Wie auch immer, ich hoffe, das erspart jemandem viel Suche ...
quelle