Frank: Problem mit Bedingung und HTML-Code

Hallo Leute,

ich bin dabei mich in XML/XSL(T) einzuarbeiten.
Nun wollte ich eine entspr. Tabelle füllen,
aber bekomme immer wieder einen Fehler, wenn ich die Seite aufrufe.

So sieht mein XSL-Bereich aus:

xsl:choose
  <xsl:when test="chargen_status = 'CHG_BLOCK'">
    <xsl:value-of select="."/> <tr style="color: red; font-family: Tahoma; font-size: 8pt;"/>
  </xsl:when>
  xsl:otherwise
    <xsl:value-of select="."/> <tr style="color: black; font-family: Tahoma; font-size: 8pt;"/>
  </xsl:otherwise>
</xsl:choose>

Möchte gerne den oberen <tr> ausgeben, wenn chargen_status = 'CHG_BLOCK' ist und ansonsten den anderen tr.

Nur leider bekomme ich das nicht hin, es erscheint immer folgende Meldung:

Nicht übereinstimmendes Tag. Erwartet: </tr>. <<

Wohlmöglich liegt es daran, dass man kein HTML-Tag ausgeben kann oder ?
Könnt ihr mir eine Lösung verraten, mit dem ich das hinbekomme ?
Hab etliche Bücher durchforstet und auch bei google geschaut, leider ohne Erfolg. :-(

Bitte helft mir, ist wirklich wichtig und dringend.

Mfg

  1. Hi,

    Nicht übereinstimmendes Tag. Erwartet: </tr>. <<

    Ich glaube du kannst in xsl nicht nicht so arbeiten, dass du ein HTML-Element aufmachst und sofort wieder schließt, also so <tr />.

    Der erwartet, dass du das <tr> "anders" zumachst:

    Aufmachen: <tr>
    Textrein: blacschwall
    Zumachen:  </tr>

    Habe das bis jetzt immer so gemacht und nie Probleme gehabt.

    Grüße,
    Thorsten F.

    1. Hi,

      Nicht übereinstimmendes Tag. Erwartet: </tr>. <<

      Ich glaube du kannst in xsl nicht nicht so arbeiten, dass du ein HTML-Element aufmachst und sofort wieder schließt, also so <tr />.

      Der erwartet, dass du das <tr> "anders" zumachst:

      Aufmachen: <tr>
      Textrein: blacschwall
      Zumachen:  </tr>

      Habe das bis jetzt immer so gemacht und nie Probleme gehabt.

      Grüße,
      Thorsten F.

      ja gut, das ist klar.
      Das Problem ist, dass danach noch <td>s kommen und erst dann das <tr> geschlossen wird.

  2. Hi,

    xsl:choose
      <xsl:when test="chargen_status = 'CHG_BLOCK'">
        <xsl:value-of select="."/> <tr style="color: red; font-family: Tahoma; font-size: 8pt;"/>
      </xsl:when>
      xsl:otherwise
        <xsl:value-of select="."/> <tr style="color: black; font-family: Tahoma; font-size: 8pt;"/>
      </xsl:otherwise>
    </xsl:choose>

    Du willst tr-Elemente ohne jeglichen Inhalt ausgeben?

    Wohl eher nicht.

    Du kannst per XSL nicht tags erzeugen, nur Elemente.

    Du kannst einem Element Attribute hinzufügen.

    also
    ...
    <tr>
       <xsl:attribute name="style">
           xsl:choose
              <xsl:when test="Deine Bedingung">Wert des Attributs</xsl:when>
              xsl:otherwiseAnderer Wert des Attributs</xsl:otherwise>
           </xsl:choose>
       </xsl:attribute>
    <!-- was auch immer in die tr rein soll, kommt hier hin -->
    </tr>
    ...

    Nur leider bekomme ich das nicht hin, es erscheint immer folgende Meldung:

    Nicht übereinstimmendes Tag. Erwartet: </tr>. <<

    Natürlich. Es ist ja auch kein tr mehr offen - Du hast die tr ja sofort wieder geschlossen per />

    Wohlmöglich liegt es daran, dass man kein HTML-Tag ausgeben kann oder ?

    Nein, nur Elemente.

    cu,
    Andreas

    --
    Warum nennt sich Andreas hier MudGuard?
    Schreinerei Waechter
    O o ostern ...
    Fachfragen unaufgefordert per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.