Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[xslt] boolean value uit template in variabele stoppen

Pagina: 1
Acties:

  • marty
  • Registratie: Augustus 2002
  • Laatst online: 27-03-2023
Ik loop tegen het volgende probleem aan:

code:
1
2
3
4
5
6
7
<xsl:variable name="var1" select="false()"/>
<xsl:variable name="var2">
    <xsl:value-of select="false()"/>
</xsl:variable>
<xsl:variable name="var3">
    <xsl:value-of select="0"/>
</xsl:variable>


boolean($var1) lever netjes false op,
maar boolean($var2) en boolean($var3) leveren true op.

Het probleem zit 'm er in dat ik soms een constructie als deze wil gebruiken:
code:
1
2
3
4
5
<xsl:variable name="var1">
    <xsl:call-template name="some-template">
        <xsl:with-param name="some-param" select="'some-value'" />
    </xsl:call-template>
</xsl:variable>

En het dus niet voor elkaar krijg om m'n variabele als boolean te gebruiken.

Iemand enig idee hoe dat wel kan?

Verwijderd

in var2 en var3 zit een niet-lege string, die levert je true op.

Hoe je het op moet lossen: geen antwoord eigenlijk, wel een idee, maar of het klopt weet ik niet
code:
1
2
3
4
5
<xsl:variable name="var2">
    <xsl:value-of select="'false'"/>
</xsl:variable>

boolean($var2) --> ???

edit:
anders eventueel met string comparrrre functions:
code:
1
2
3
4
5
6
7
<xsl:variable name="var1">
    <xsl:call-template name="some-template">
        <xsl:with-param name="some-param" select="'some-value'" />
    </xsl:call-template>
</xsl:variable>

boolean(compare($var1,'false'))

oid, m'n xsl is wat roestig

[ Voor 35% gewijzigd door Verwijderd op 07-08-2007 09:35 ]


  • marty
  • Registratie: Augustus 2002
  • Laatst online: 27-03-2023
Verwijderd schreef op dinsdag 07 augustus 2007 @ 09:29:
in var2 en var3 zit een niet-lege string, die levert je true op.

Hoe je het op moet lossen: geen antwoord eigenlijk, wel een idee, maar of het klopt weet ik niet
code:
1
2
3
4
5
<xsl:variable name="var2">
    <xsl:value-of select="'false'"/>
</xsl:variable>

boolean($var2) --> ???
Nopes, dit levert nog steeds true op. Had me ook zeer verbaasd als dat gewerkt had aangezien bvb 0 ook true oplevert.
edit:
anders eventueel met string comparrrre functions:
code:
1
2
3
4
5
6
7
<xsl:variable name="var1">
    <xsl:call-template name="some-template">
        <xsl:with-param name="some-param" select="'some-value'" />
    </xsl:call-template>
</xsl:variable>

boolean(compare($var1,'false'))

oid, m'n xsl is wat roestig
Dat is uiteraard geen probleem, maar op het moment dat ik de waarde van m'n variabele test kan ik dan net zo goed test="$var1 = 'false'" doen.

Het is niet zozeer dat ik nu met een script vast zit, het ging me er vooral om dat ik van m'n variabele gewoon een boolean kan maken als een select="" niet direct mogelijk is.

  • Pkunk
  • Registratie: December 2003
  • Laatst online: 02-11 10:08
In een select in een variable kan je wel een nodeset krijgen, ertussen niet. Misschien even proberen met msxml:nodeset Misschien dat dat ook invloed heeft op booleans. Maar daar heb ik eigenlijk geen ervaring mee. Ben wel benieuwd eigenlijk.

[ Voor 25% gewijzigd door Pkunk op 07-08-2007 17:34 ]

Hallo met Tim