2009-07-28 12 views
1

Ich habe eine Reihe von Nodesets, wo ich "1" anstelle von "True" zurückgeben soll, wenn es mehr als einen Treffer gibt ($ mynodeset) Ist da kompakterer/smarterer Weg, dies in XSLT 1.1 zu tun?Wert 0 oder 1 von count() von XSL-Nodesätzen erhalten

<xsl:variable name="x5" select="count($mynodeset) != 0"/> 
    <xsl:variable name="z5"> 
    <xsl:choose> 
     <xsl:when test="x5 = 'true'">1</xsl:when> 
     <xsl:otherwise>0</xsl:otherwise> 
    </xsl:choose> 
    </xsl:variable> 
+0

Das nächste Mal, wenn Sie es brauchen: Es ist ' 'oder sogar ', aber '' sollte vermieden werden. Nicht alles, was zu "wahr" auswertet, wird in die Zeichenfolge "wahr" umgewandelt. – Tomalak

Antwort

4

Verwenden Sie einfach die Funktion number(), die einen Booleschen Wert auf 1 konvertiert oder 0

4

Können Sie nicht verwenden, um die number Funktion?

<xsl:variable name="x5" select="number(count($mynodeset) != 0)"/> 

Ich weiß nicht wirklich XSLT, aber dies scheint ganz einfach nach:

XPath number function definition (XPath-Funktionen verwendet werden, durch XSLT 1.1 expressions)

+0

Ihr Hinweis bezieht sich auf XPath 1.0. Ich bin nicht sicher, wie XSLT 1.1 in das Bild eingeht, aber nur für den Fall - benutze es nicht, es ist ein unfertiger und toter Standard. –

+0

Entschuldigung für die Unklarheit, aber XPath wird speziell zum Definieren von XSLT 1.1-Ausdrücken verwendet. Aus diesem und anderen Gründen ist "tot" ein bisschen stark. –