daniel : farblich alternierende tabellenzeilen mit xsl ausgeben

hallo alle zusammen,

ich versuche mich gerade zum ersten mal ein bißchen an xml/xsl.

nun habe ich eine xml-datei schon mal via xsl zur tabellarischen ausgabe bewegen können - immerhin.

was mir nun zu meinem glück aber noch fehlen würde, wären alternierende tabellenzellen.

wenn ich mit php arbeiten würde, würde ich einfach eine variable mitzählen lassen, bei jedem durchlauf durch 2 teilen und je nach rest (0 oder 1) der zeile eine farbe verpassen...

geht sowas auch mit xsl? ich hab mal rumgesucht, aber nirgendwo sowas gefunden.

<xsl:for-each select="office"> <xsl:sort select="long" /> <tr>

<td valign="top" width="2%"><xsl:value-of select="nummer" /></td> <td valign="top" width="5%"><xsl:value-of select="short" /></td> <td valign="top" width="10%"><xsl:value-of select="long" /></td> <td valign="top" width="15%"><xsl:value-of select="level3" /></td> <td valign="top" width="15%"><xsl:value-of select="level2" /></td> <td valign="top" width="15%"><xsl:value-of select="level1" /></td>

</tr>

</xsl:for-each>

vielen dank für eure hilfe !!

grüße, daniel

  1. Hi,

    was mir nun zu meinem glück aber noch fehlen würde, wären alternierende tabellenzellen.
    <xsl:for-each select="office">
    <xsl:sort select="long" />
    <tr>

    <!-- probier mal das hier, bin mir aber im Moment nicht sicher, ob das mit der Sortierung noch hinhaut -->
    <xsl:attribute name="class">
      xsl:choose
         <xsl:when test="position() % 2 = 0">hell</xsl:when>
         xsl:otherwisedunkel</xsl:otherwise>
      </xsl:choose>
    </xsl:attibute>

    Im CSS dann tr.hell und tr.dunkel entsprechend formatieren.

    cu,
    Andreas

    --
    MudGuard? Siehe http://www.Mud-Guard.de/
    Fachfragen per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
    1. Hi,

      Korrektur:

      <xsl:when test="position() % 2 = 0">hell</xsl:when>

      <xsl:when test="position() mod 2 = 0">hell</xsl:when>

      mod statt %

      cu,
      Andreas

      --
      MudGuard? Siehe http://www.Mud-Guard.de/
      Fachfragen per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
      1. hallo daniel, hallo MudGuard (beachte schreibweise :-)

        MudGuard hat recht, und war sogar schneller, habe es gerade
        getestet. gruss,

        <xsl:when test="position() mod 2 = 0">hell</xsl:when>

        michael
        ss:) zu:) ls:& fo:) de:> va:) ch:? n4:& rl:? br:< js:| ie:% fl:{ mo:|

        1. Hi,

          MudGuard hat recht, und war sogar schneller, habe es gerade
          getestet. gruss,

          Naja, erst auf Dein Posting hin hab ich nochmal in XPath nachgeguckt wegen des mod <---> % ;-)

          Ist aber auch doof, daß die Operatoren immer mal wieder anders sind...

          cu,
          Andreas

          --
          MudGuard? Siehe http://www.Mud-Guard.de/
          Fachfragen per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
  2. hallo daniel,

    probiere mal folgendes (ungetestet):

    <td>
    <xsl:if test="[position() mod 2 = 0]">
      <xsl:attribute name="class">ungerade</xsl:attribute>
    </xsl:if>
    </td>

    hth, gruss vom bodensee,

    michael
    ss:) zu:) ls:& fo:) de:> va:) ch:? n4:& rl:? br:< js:| ie:% fl:{ mo:|