josef stebegg: globale variable

Beitrag lesen

Hallo!

Trotz einiger Unterlagen verstehe ich das mit den globalen Variablen nicht.

Das folgende (hier vereinfachte) xsl erzeugt "Lebenslinien"

<?xml version="1.0" encoding="iso-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:template match="/">

<html><head>
 <link rel="stylesheet" type="text/css" href="personen.css"/>
 </head>
 <body>
 <xsl:apply-templates />
</body></html>
</xsl:template>

<xsl:template match="paar">
   <div>
 <!-- Mann -->
  <xsl:for-each select="mann">
 <xsl:variable name="geburt">left:<xsl:value-of select="@geburt *3-4428"/>px</xsl:variable>
 <xsl:variable name="alter">width:<xsl:value-of select="(@tod - @geburt)*3"/>px</xsl:variable>
 <div style="position:absolute; {$geburt}; {$alter};" class="linie1m"></div>
   </xsl:for-each>
 <!-- frau  -->
   <xsl:for-each select="frau">
 <xsl:variable name="geburt">left:<xsl:value-of select="@geburt*3-4428" />px</xsl:variable>
 <xsl:variable name="alter">width:<xsl:value-of select="(@tod - @geburt)*3" />px</xsl:variable>
 <xsl:variable name="farbe">background:#xsl:choose
   <xsl:when test="../mann/@haus='spanien'">666</xsl:when>
   <xsl:when test="../mann/@haus='portugal'">669</xsl:when>
 xsl:otherwise<xsl:value-of select="../mann/@farbe"/></xsl:otherwise></xsl:choose></xsl:variable>
 <div style="position:absolute; {$geburt}; {$alter}; {$farben};" class="linie1f"></div>
   </xsl:for-each>
   </div>
</xsl:template>

</xsl:stylesheet>

Wenn ich nun die zwei Mal vorkommenden Variablen als Top-Level-Elemente setzte:

<?xml version="1.0" encoding="iso-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:variable name="geburt">left:<xsl:value-of select="@geburt *3-4428"/>px</xsl:variable>
<xsl:variable name="alter">width:<xsl:value-of select="(@tod - @geburt)*3"/>px</xsl:variable>

<xsl:template match="/">
.....

Ist das so ueberhaupt moeglich?
Und wie geht dann bitte der Aufruf zwischen "for-each"

(geburt und tod sind attribute von mann bzw frau, die wiederum direkte kinder von paar sind)

gruesse
josef