Avatar billede yuksel Nybegynder
30. marts 2006 - 11:26 Der er 3 kommentarer og
2 løsninger

Variabler i xsl

Hej til alle.

jeg har følgende kode, hvor jeg gerne vil sætte en variable og senere alt efter hvad der står i variablen udførere forskellige koder ?

<xsl:if test="(/system/beta/test)"> 
<xsl:call-template name="testsite"/>
<xsl:variable name="myTest"> </xsl:variable>
</xsl:if>       

    <xsl:choose>
      <xsl:when  test="$myTest">
Noget masse kode….
Osv….



er der nogen der kan hjælpE?
Avatar billede Slettet bruger
30. marts 2006 - 12:07 #1
Er lidt usikker på sammenhængen, men måske er det det her du vi...

Du definerer de variabler du skal bruge i den kaldte template heri:

<xsl:template name="testsite">
  <xsl:variable name="myTest">Evt. default værdi</xsl:variable>
  ...
</xsl:template>

Du kalder templaten med <xsl:call-template> og lægger en <xsl:with-param> indeni:

<xsl:call-template name="testsite">
  <xsl:with-param name="myTest">Værdi der sendes med kaldet</xsl:with-param>
</xsl:call-template>

Test af værdien gør du rigtigt nok med <xsl:when> eller <xsl:if> - f.eks.: <xsl:if test="$myTest = ''Navn og adresse">

/CS
Avatar billede Slettet bruger
30. marts 2006 - 12:09 #2
Vær også lige opmærksom på at XSLT "variable" og "param" fungerer som konstanter - de kan ikke få nye værdier når de een gang er sat.

/CS
Avatar billede yuksel Nybegynder
31. marts 2006 - 14:23 #3
i VBA har man noget 
Select Case
  case is = "asd"
    en masse kode.....
  case is ="asdada"
  andet kode
osv...


kan man ikke have noget i den stil i XSL hvis man gerne vil have at koden og variablerne skal opføre sig efter xml noder ?
Avatar billede Slettet bruger
31. marts 2006 - 14:39 #4
Jo, det har man:

<xsl:variable name="settings" select="/document/settings" />

<xsl:choose>
  <xsl:when test="$settings/images[@extension  = 'png']">
      ...
  </xsl:when>
  ...
  ...
  <xsl:otherwise>
  ...
  </xsl:otherwise>
</xsl:choose>

Du kan have lige så mange when elementer du vil, men kun eet otherwise...

/CS
Avatar billede yuksel Nybegynder
18. april 2006 - 08:50 #5
takker :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester