Announcement

Collapse
No announcement yet.

Zwischenspeichern von Werten

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Zwischenspeichern von Werten

    Hallo!

    Hier erstmal der Code:

    Code:
      <xsl:template name="LINETEXT
      
        <xsl:for-each select="CHARTTYPE/FEATURES/FEATURE/LINE">   
          
        <!-- <SINGLE_LINE_TEXT> -->
        <xsl:text>TEXT</xsl:text>
    
        <xsl:for-each select="POINT">
    
          <!-- LATITUDE -->
          <xsl:variable name="lat4" 	select="LAT"></xsl:variable>
    
          <!-- LONGITUDE -->
          <xsl:variable name="long4" 	select="LONG"></xsl:variable>
    
    	<xsl:variable name="lat_A">
    		<xsl:choose>
    			<xsl:when test="$Position mod 2 = 1">
    				<xsl:value-of select="$lat4"/>
    			</xsl:when>
    		</xsl:choose>  
    	</xsl:variable> 
    	
    	<xsl:variable name="long_A">
    		<xsl:choose>
    			<xsl:when test="$Position mod 2 = 1">
    				<xsl:value-of select="$long4"/>
    			</xsl:when>
    		</xsl:choose>  
    	</xsl:variable> 
    	
    	<xsl:variable name="lat_B">
    		<xsl:choose>
    			<xsl:when test="$Position mod 2 = 0">
    				<xsl:value-of select="$lat4"/>
    			</xsl:when>
    		</xsl:choose>  
    	</xsl:variable> 
    	
    	<xsl:variable name="long_B">
    		<xsl:choose>
    			<xsl:when test="$Position mod 2 = 0">
    				<xsl:value-of select="$long4"/>
    			</xsl:when>
    		</xsl:choose>  
    	</xsl:variable> 
    
    	<xsl:call-template  name="CALC_KOORD">
    		<xsl:with-param name="lat"		select="$lat_A"></xsl:with-param>        
    		<xsl:with-param name="long"		select="$long_A"></xsl:with-param>
    		<xsl:with-param name="lata"		select="$lat_B"></xsl:with-param>        
    		<xsl:with-param name="longa"	select="$long_B"></xsl:with-param>
    	</xsl:call-template>	
    
    </xsl:for-each>
    
    </xsl:for-each>
        
    </xsl:template>
    Mein Ziel ist es das Dokument zu durchlaufen mit der for-each Schleife. Dabei wird der LATITUDE + LONGITUDE Wert ausgelesen. Für eine Berechnungsfunktion "CALC_KOORD" benötige ich aber nicht nur einen LAT/LONG Wert sondern auch einen zweiten Wert. Wenn ich jetzt aber die Schleife nochmals durchlaufe, wird der vorherige Wert in "LAT_A" und "LONG_A" wieder auf 0 gesetzt.

    Gibt es eine Möglichkeit das Ergenis eines Durchlaufs irgendwie bis zum nächsten Durchlauf zwischenzuspeichern?

    XSLT 1.0
    Prozessor: libxslt

    Schon mal Danke für eine Antwort!
    Zuletzt editiert von Oechel; 25.06.2009, 09:25.

  • #2
    Der übliche Weg besteht im Aufruf benannter Templates mit Parameterübergabe mittels xsl:with-param, welche im aufgerufenen Template über xslaram aufgefangen werden und ggf. wieder an dieses oder ein anderes Template (rekursiv) übergeben werden.

    Comment

    Working...
    X