Toon posts:

[xsl] xsl:if icm boolean geeft foutmelding in IE

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik was net in IE even een klein xsl scriptje aan het controleren, maar ik kom een foutmelding tegen die ik niet makkelijk kan omzeilen / verklaren.

in het xml bestand staat o.a.

XML:
1
2
3
4
<entity id="...">
   ...
   <showinmain>False</showinmain>
</entity>


Wanneer ik echter hier op wil testen gaat het fout, ik doe dat middels:

code:
1
<xsl:if test="showinmain = true">


De foutmelding is:
Expected token eof, found '='
Ik heb ook al gekeken of ik dmv Boolean() de datatype nog moet wijzigen maar ook dat levert een foutmelding op...

  • Spider.007
  • Registratie: December 2000
  • Niet online

Spider.007

* Tetragrammaton

Komt het niet door het gebruik van de spaties om het '=' teken heen? En kun je niet gewoon
code:
1
<xsl:if test="showinmain">
doen?

---
Prozium - The great nepenthe. Opiate of our masses. Glue of our great society. Salve and salvation, it has delivered us from pathos, from sorrow, the deepest chasms of melancholy and hate


Verwijderd

Topicstarter
Spider.007 schreef op 01 april 2004 @ 19:15:
Komt het niet door het gebruik van de spaties om het '=' teken heen? En kun je niet gewoon
code:
1
<xsl:if test="showinmain">
doen?
beiden opties ook getest, maar heeft ook geen resultaat gehad...

  • djc
  • Registratie: December 2001
  • Laatst online: 08-09-2025

djc

Dat met die spaties maakt geen verschil, ik gebruik ook altijd spaties en dat werkt prima. Volgens mij moet je echter test="showinmain = 'True'" gebruiken (dus met single quotes).

[ Voor 52% gewijzigd door djc op 01-04-2004 23:27 . Reden: Niet goed gelezen. ]

Rustacean


Verwijderd

Topicstarter
Manuzhai schreef op 01 april 2004 @ 23:26:
Dat met die spaties maakt geen verschil, ik gebruik ook altijd spaties en dat werkt prima. Volgens mij moet je echter test="showinmain = 'True'" gebruiken (dus met single quotes).
Die geeft ook een foutmelding, misschien dat ik iets anders over het hoofd zie, ik zal het complete xsl bestand er even neerzetten:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl" language="JavaScript">

<xsl:template match="tree">
  <xsl:apply-templates select="entity"/>
</xsl:template>

<xsl:template match="entity">
  <div onclick="window.event.cancelBubble = true;clickOnEntity(this);" onselectstart="return false" ondragstart="return false">
  <xsl:attribute name="image"><xsl:value-of select="image"/></xsl:attribute>
  <xsl:attribute name="imageOpen"><xsl:value-of select="imageOpen"/></xsl:attribute>
  <xsl:attribute name="open">false</xsl:attribute>
  <xsl:attribute name="id">f<xsl:value-of select="@id"/></xsl:attribute>
  <xsl:attribute name="open">false</xsl:attribute>
  <xsl:attribute name="STYLE">
    padding-left: 20px;
    cursor: hand;
    <xsl:if expr="depth(this) > 2">
      display: none;
    </xsl:if>
  </xsl:attribute>
    <table border="0" cellspacing="0" cellpadding="0">
    <xsl:if test="showinmain = 'True'">
      <tr>
        <td valign="middle">
          <img border="0" id="image">
            <xsl:attribute name="SRC">
              <xsl:value-of select="image"/>
            </xsl:attribute>
          </img>
        </td>
        <td valign="middle" nowrap="true">
        <xsl:attribute name="STYLE">
          padding-left: 7px;
          font-family: Verdana;
          font-size: 11px;
          font-color: black;
        </xsl:attribute>
        <xsl:value-of select="description"/></td>
      </tr>
      </xsl:if>
    </table>
  <xsl:apply-templates select="contents/entity" />
  </div>
</xsl:template>

</xsl:stylesheet>


De exacte foutmelding:
Regel: 15
Teken: 3
Fout: Verwacht token 'eof' gevonden '='
showinmain -->=<-- 'True'
Code: 0
Ik zal hem zometeen server side parsen en ook kijken of een andere parser nog invloed heeft...

  • Rickets
  • Registratie: Augustus 2001
  • Niet online

Rickets

Finger and a shift

Je gebruikt WD-xsl (Working Draft), die heeft een andere syntax voor conditional expressions. Zoiets zou het dan worden:
code:
1
<xsl:if test=".[showinmain $ieq$ 'True']">

Maar dit is syntax van een Working Draft, dus daar kan je problemen mee verwachten (oude MSXML-parsers ondersteunen het wel dacht ik). Je kan beter het wat nieuwere spul pakken :)

[ Voor 6% gewijzigd door Rickets op 02-04-2004 13:11 ]

If some cunt can fuck something up, that cunt will pick the worst possible time to fucking fuck it up, because that cunt’s a cunt.

Pagina: 1