die Elemente aus einem xml-Dokument werden �ber xslt in eine html-Tabelle
geschrieben.
Die rows sollen abwechselnd formatiert werden (css).
Afaik gibt es in xslt keine echten Variablen. Eine echte Variable k�nnte
ich als Umschalter einsetzen, um die class f�r den style zu steuern.
Eine L�sung w�re, dem Element im xml-Dokument ein Attribut mitzugeben und
es im xsl-Skript f�r die Formatierung auszuwerten.
Es w�re aber besser, wenn ich das xml-Dokument von
Formatierungsinformationen freihalten k�nnte.
Habt Ihr eine Idee dazu, wie das mit xslt machbar ist?
Vielen Dank,
Friedel
Es gibt Parameter, aber in deinem Fall nimmt man ᅵblicherweise ein if mit
dem 2er modulus des Zaehlers.
Gruss
Bernd
> die Elemente aus einem xml-Dokument werden �ber xslt in eine html-Tabelle
> geschrieben.
> Die rows sollen abwechselnd formatiert werden (css).
>
> Afaik gibt es in xslt keine echten Variablen. Eine echte Variable k�nnte
> ich als Umschalter einsetzen, um die class f�r den style zu steuern.
>
> Eine L�sung w�re, dem Element im xml-Dokument ein Attribut mitzugeben und
> es im xsl-Skript f�r die Formatierung auszuwerten.
> Es w�re aber besser, wenn ich das xml-Dokument von
> Formatierungsinformationen freihalten k�nnte.
>
> Habt Ihr eine Idee dazu, wie das mit xslt machbar ist?
<xsl:apply-templates select="foo"/>
und dann mit position() arbeiten:
<xsl:template match="foo">
<tr class="if (position() mod 2 eq 1) then 'odd' else 'even'">
...
</tr>
</xsl:template>
if/then/else ist XPath 2.0, kann also nur mit Saxon 9 oder AltovaXML
Tools benutzt werden.
Mit XSLT/XPath 1.0 ist es etwas umst�ndlicher:
<xsl:template match="foo">
<xsl:variable name="class">
<xsl:choose>
<xsl:when test="position() mod 2 = 1">odd</xsl:when>
<xsl:otherwise>even</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<tr class="{$class}">
...
</tr>
</xsl:template>
position() funktioniert nat�rlich auch mit <xsl:for-each
select="foo">...</xsl:for-each>.
--
Martin Honnen
http://msmvps.com/blogs/martin_honnen/
> Friedel Jantzen <nospa...@freenet.de> wrote:
>> Afaik gibt es in xslt keine echten Variablen. Eine echte Variable k�nnte
>> ich als Umschalter einsetzen, um die class f�r den style zu steuern.
>
> Es gibt Parameter, aber in deinem Fall nimmt man �blicherweise ein if mit
> dem 2er modulus des Zaehlers.
Kann man das jetzt nicht auch mit CSS3 erreichen? Es ist eigentlich eine
rein visuelle Auszeichnung, die mit dem Dokumentinhalt nicht zu tun
hat.
mfg, simon .... l
Da ist mir ein Fehler unterlaufen, es m�sste ein "attribute value
template" sein:
<tr class="{if (position() mod 2 eq 1) then 'odd' else 'even'}">
Aber der if/then/else-Ausdruck ist XPath 2.0 und MSXML unterst�tzt nur
XSLT und XPath 1.0.
> Da ist mir ein Fehler unterlaufen, es m�sste ein "attribute value
> template" sein:
> <tr class="{if (position() mod 2 eq 1) then 'odd' else 'even'}">
>
> Aber der if/then/else-Ausdruck ist XPath 2.0 und MSXML unterst�tzt nur
> XSLT und XPath 1.0.
Ja, ich hatte eine Fehlermeldung erwartet.
Friedel