tutorials.de Buch-Aktion 02/2012
ERLEDIGT
JA
ANTWORTEN
4
ZUGRIFFE
209
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    pattexx pattexx ist offline Grünschnabel
    Registriert seit
    Jul 2004
    Beiträge
    3
    Hallo tutorials.de User!

    Ich habe ein Problem mit einer xsl:if Bedingung. Es handelt sich dabei um die Gebote bei einer Auktion (ist nur ein Beispiel also nicht wundern )
    Diese xml Datei liegt mir vor:
    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
    47
    48
    
    <?xml version="1.0"?>
    <AUCTIONBLOCK>
     
      <ITEM>
        <TITLE>Sandstone</TITLE>
        <ARTIST>Linda Mann</ARTIST>
        <DIMENSIONS>20x30 inches</DIMENSIONS>
        <MATERIALS>Oil</MATERIALS>
        <YEAR>1995</YEAR>
        <DESCRIPTION>Still Life</DESCRIPTION>
        <PREVIEW-SMALL src="sand-s.jpg" width="300" height="202" alt="Sandstone"/>
        <BIDS>
          <BID>
            <PRICE>11200</PRICE>
            <TIME>12:33:19 PM</TIME>
            <BIDDER>Andrew</BIDDER>
            <TIMESTAMP>2673</TIMESTAMP>
          </BID>
          <BID>
            <PRICE>11000</PRICE>
            <TIME>12:21:03 PM</TIME>
            <BIDDER>Chris</BIDDER>
            <TIMESTAMP>2665</TIMESTAMP>
          </BID>
          <BID>
            <PRICE>10500</PRICE>
            <TIME>12:18:00 PM</TIME>
            <BIDDER>Andrew</BIDDER>
            <TIMESTAMP>2662</TIMESTAMP>
          </BID>
          <BID>
            <PRICE>10400</PRICE>
            <TIME>12:16:42 PM</TIME>
            <BIDDER>Chris</BIDDER>
            <TIMESTAMP>2649</TIMESTAMP>
          </BID>
          <BID>
            <PRICE>6200</PRICE>
            <TIME>11:07:47 AM</TIME>
            <BIDDER>opening price</BIDDER>
            <TIMESTAMP>15</TIMESTAMP>
          </BID>
      
        </BIDS>
        <TIMESTAMP>2673</TIMESTAMP>
      </ITEM>
     
    </AUCTIONBLOCK>

    In der xsl Datei möchte ich nun alle Gebote in einer Tabelle anzeigen. Aber nicht die Gebote von "Chris". Sprich, er würde nur das Gebot von "Andrew" anzeigen und das opening Gebot.

    So sieht meine xsl Datei aus:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    
    <?xml version="1.0"?>
     
    <xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">
      <xsl:template match="/">
        <TABLE STYLE="border:1px solid black">
          <TR  STYLE="font-size:12pt; font-family:Verdana; font-weight:bold; text-decoration:underline">
            <TD>Price</TD>
            <TD STYLE="background-color:lightgrey">Time</TD>
            <TD>Bidder</TD>
          </TR>
          <xsl:for-each select="AUCTIONBLOCK/ITEM/BIDS/BID" order-by="BIDDER">
           <xsl:if test="BIDDER!='Chris'">
            <TR STYLE="font-family:Verdana; font-size:12pt; padding:0px 6px">
              <TD>$<xsl:value-of select="PRICE"/></TD>
              <TD STYLE="background-color:lightgrey"><xsl:value-of select="TIME"/></TD>
              <TD><xsl:value-of select="BIDDER"/></TD>
            </TR>
           </xsl:if>
          </xsl:for-each>
        </TABLE>
      </xsl:template>
    </xsl:stylesheet>

    Als Fehler erscheint dann im IE:
    "Erwartetes Toke 'eof' fand '!='".

    Was ist denn an der xsl:if Bedingung falsch?
    Gruß und vielen Dank für eure Hilfe
    pattexx
     

  2. #2
    Avatar von hela
    hela hela ist offline Mitglied Smaragd
    tutorials.de Premium-User
    Registriert seit
    Oct 2004
    Beiträge
    1.099
    Hallo,

    wenn du in dem FOR-EACH-Element das order-by="BIDDER" weglässt (wahrscheinlich an SQL gedacht), dann müsstest du die Tabelle erhalten, die du erwartest.
     

  3. #3
    pattexx pattexx ist offline Grünschnabel
    Registriert seit
    Jul 2004
    Beiträge
    3
    Danke für die Antwort! Leider bleibt die Fehlermeldung. Das "sort" müsste schon richtig sein (zumindest tritt dabei kein Fehler auf und sortiert die Ergebnisse nach dem Bieter)


    edit: Ich habe es gerade mit Safari probiert und dort funktioniert es
    Geändert von pattexx (09.12.08 um 19:06 Uhr)
     

  4. #4
    Avatar von hela
    hela hela ist offline Mitglied Smaragd
    tutorials.de Premium-User
    Registriert seit
    Oct 2004
    Beiträge
    1.099
    Bei mir funktioniert das auch im IE.
    Die IF-Bedingung kannst dir übrigens sparen, wenn du im FOR-EACH-Element mit einem Prädikat selektierst:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    
    <xsl:for-each select="//BIDS/BID[BIDDER != 'Chris']">
      <xsl:sort select="BIDDER"/>
      <TR STYLE="font-family:Verdana; font-size:12pt; padding:0px 6px">
        <TD>$<xsl:value-of select="PRICE"/>
        </TD>
        <TD STYLE="background-color:lightgrey">
          <xsl:value-of select="TIME"/>
        </TD>
        <TD>
          <xsl:value-of select="BIDDER"/>
        </TD>
      </TR>
    </xsl:for-each>
     

  5. #5
    pattexx pattexx ist offline Grünschnabel
    Registriert seit
    Jul 2004
    Beiträge
    3
    Danke für die Antwort, so hab ich es am Ende auch gelöst.
     

Ähnliche Themen

  1. this-Probleme
    Von flashsi im Forum Flash Plattform
    Antworten: 4
    Letzter Beitrag: 05.09.09, 12:39
  2. Probleme mit dem IE6
    Von UncleB im Forum CSS
    Antworten: 3
    Letzter Beitrag: 10.01.09, 15:02
  3. Premiere Pro Export probleme / Projekt Probleme
    Von DanielT im Forum Videoschnitt, Videotechnik & -produktion
    Antworten: 5
    Letzter Beitrag: 31.10.03, 17:48
  4. Antworten: 6
    Letzter Beitrag: 21.05.03, 12:49
  5. Probleme mit API
    Von flashgod im Forum Visual Basic 6.0
    Antworten: 7
    Letzter Beitrag: 18.07.02, 00:18