Harmen: Attributbedingte Formate definieren XSL

Hallo! Wer kann mir helfen?
Ich habe eine xml-Datei mit einem <datum>-Element:

<datum rsedat="17. Mai" />...
<datum histdat="1768" />...

Wie kann ich diese Elemente im XSL nach ihrem Atrribut stylen? Versucht habe ich folgendes:

<xsl:template match="datum">
    <p style="datum[rsedat]:color:red;datum[histdat]:color:green;">
      <xsl:value-of select="." />
    </p>
</xsl:template>

das hat nicht geklappt. Weiß jemand Rat?
Viele Grüße.

  1. Dass Attribute getrennt mit if abfrage, also etwas so

    <p>
    <xsl:attribute name="style">
    <xsl:if test="datum[@rsedat]">
    xsl:textcolor:red</xsl:text>
    </xsl:if>
    <xsl:if test="datum[@histdat]">
    xsl:textcolor:green</xsl:text>
    </xsl:if>
    </xsl:attribute>
    xsl:texthier dein formatierter text>/xsl:text>
    </p

    richtig sauber schreibst du es am besten mit

    <xsl:element name="p">
    <xsl:attribute name="style">
    <xsl:if test="datum[@rsedat]">
    xsl:textcolor:red</xsl:text>
    </xsl:if>
    <xsl:if test="datum[@histdat]">
    xsl:textcolor:green</xsl:text>
    </xsl:if>
    </xsl:attribute>
    xsl:texthier dein formatierter text>/xsl:text>
    </xsl:element>

    Gruß,

    1. Hallo,

      Dass Attribute getrennt mit if abfrage, also etwas so
      richtig sauber schreibst du es am besten mit

      Richtig sauber macht man es nicht mit if, sondern mit choose:

      <xsl:template match="datum">
       <p>
        <xsl:attribute name="style">
         xsl:choose
          <xsl:when test="@rsedat">color:red;</xsl:when>
          <xsl:when test="@histdat">color:blue;</xsl:when>
          xsl:otherwisecolor:black;</xsl:otherwise>
         </xsl:choose>
        </xsl:attribute>
        <xsl:value-of select="." />
       </p>
      </xsl:template>

      Grüße
      Thomas

      1. Zu Befehl Meister ;-)

        Aber muss es den immer schwarz by default sein;-)

        Aber mal schnell eine Zwischenfrage etwas off-topic. Gibt es einen Weg bei OpenOffice irgendiwe den Saxon8B "reinzubasteln" ich bräuchte ihn beim XML-Filter?

        Gruß

        1. -Hallo,

          Aber muss es den immer schwarz by default sein;-)

          Zuerst wolle ich magenta schreiben ;-)

          Aber mal schnell eine Zwischenfrage

          *hehe* der Witz war gut! ;-)

          etwas off-topic. Gibt es einen Weg bei OpenOffice irgendiwe den Saxon8B "reinzubasteln" ich bräuchte ihn beim XML-Filter?

          Muss ich erst nachsehen, aber ich fürchte nur wenn du die Java-API von OO dazu benützt.

          Grüße
          Thomas

          1. etwas off-topic. Gibt es einen Weg bei OpenOffice irgendiwe den Saxon8B "reinzubasteln" ich bräuchte ihn beim XML-Filter?

            Muss ich erst nachsehen, aber ich fürchte nur wenn du die Java-API von OO dazu benützt.

            Nach Recherchen: es sieht nicht so aus, dass man OO mit Saxon verheiraten könnte. Dazu ist Xalan zu fix eingebunden.

            Grüße
            Thomas

            1. Besten Dank für die Antwort. Dann muss ich wohl per Kommandozeile die ODS exportieren.

              Gruß und angenehme Nachtruhe ,-)

              etwas off-topic. Gibt es einen Weg bei OpenOffice irgendiwe den Saxon8B "reinzubasteln" ich bräuchte ihn beim XML-Filter?

              Muss ich erst nachsehen, aber ich fürchte nur wenn du die Java-API von OO dazu benützt.

              Nach Recherchen: es sieht nicht so aus, dass man OO mit Saxon verheiraten könnte. Dazu ist Xalan zu fix eingebunden.

              Grüße
              Thomas

  2. Hallo,

    <p style="datum[rsedat]:color:red;datum[histdat]:color:green;">

    Was für eine Syntax soll das sein?

    Grüße
    Thomas