Gå til innhold

endre verdi på variabel i XSL, hjelp!


Anbefalte innlegg

Det første jeg gjører å definere en variabel utenfor templaten, dette blir vel en global variabel selv om variabel-taggen ikke omslutter hele templaten.

 

<xsl:variable name="sjekk">nx</xsl:variable>
<xsl:template match="/">

 

Inne i koden ønsker jeg å gjøre noe så enkelt som å sette ny verdi til variabelen. Poenget er at jeg skal sjekke om verdien "href" i xml-fila er lik href-verdien fra forrige gjennomløp. Jeg definerer derfor først sjekk-variabelen til en tøyseverdi "nx", ettersom sjekken ikke kan slå til på første gjennomløp. Deretter vil jeg sette nåværende href-verdi inn i sjek-variabelen. Dette er vanligvis enkel programmering, men ikke i XSL...

 

XSL fila, variabelen aa er der for å være sikker på at jeg sammenligner med verdien av href og ikke strengen href:

      <xsl:for-each select="root/photograph">
     
     <xsl:variable name="aa"><xsl:value-of select="href" /></xsl:variable>      
  
  
     
   <xsl:if test="$sjekk = $aa">
        <tr>
         <td>
       	<xsl:value-of select="href" />
         </td>
         <td>
       	<xsl:value-of select="kn" />
         </td>
         <td>
                    
          <xsl:value-of select="$sjekk" />
          <xsl:variable name="sjekk"><xsl:value-of select="href" /></xsl:variable>
         </td>
         <td>
          <xsl:value-of select="$aa" />
         </td>
       </tr>
       <xsl:value-of select="$sjekk" />
       
 	</xsl:if>
     	
 	<xsl:if test="$sjekk != $aa">
          <tr>
         <td>
         
       	<xsl:value-of select="//root/photograph/href[current()]" />

         </td>
         <td>
       	her er ting (<xsl:copy-of select="href" />)
         </td>
       </tr>
       
     	<xsl:value-of select="$aa" />
     	<xsl:variable name="sjekk"><xsl:value-of select="$aa" /></xsl:variable>
     	<xsl:value-of select="$sjekk" />
 </xsl:if>


  
     </xsl:for-each>

 

Og xml-fila:

<root>
<photograph>
 <href>headquarters</href>
 <kn>hh</kn>
 <size width="300"/>
</photograph>
<photograph>
 <href>headquarters</href>
 <kn>hkugl</kn>
 <size width="100"/>
</photograph>
<photograph>
 <href>hk</href>
 <kn>utd</kn>
 <size width="100"/>
</photograph>
</root>

 

Jeg får ikke satt ny verdi til sjekk-variabelen. Jeg finner ingen syntaks for å endre verdi på eksisterende variabel. Slik som det er nå vil programmet skrive ut den lokale sjekk-variabelen. Jeg greier ikke først skrive ut tøyseverdien også foregående href-verdi fra xml dokumentet.

 

Noen som har noe tips, dette skal ikke være så vanskelig!

 

Mvh

Knut

Lenke til kommentar
Videoannonse
Annonse

Fant til slutt ut av det.

 

A variable in XSLT has more in common with a variable in algebra than with a variable in a typical programming language. It's a name that represents a value and, within a particular application of a template, it will never represent any other value -- it can't be reset using anything described in the XSLT Recommendation.

 

Jeg er ikke så glad i XSL nå!!!

 

K

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...