Avatar billede jaboj Nybegynder
15. juni 2001 - 09:28 Der er 1 kommentar og
2 løsninger

Global variabel

Et nyt xsl spørgsmål. Er det muligt at have en global variabel i en xsl stylesheet som gælder i alle xsl\'ens templates. Jeg ønsker ikke bare en variabel jeg kan aflæse en værdi fra men også skrive der til så andre templates kan bruge værdien.

ala:
<xsl:variable name=\"c_color\"></xsl:variable>

<xsl:template 1>
$c_color=\"#FFFFFF\"
</xsl:template>

-Boje
Avatar billede ehf Nybegynder
15. juni 2001 - 09:54 #1
Nej det er ikke muligt.

Se http://www.dpawson.co.uk/xsl/sect2/N8090.html#d206e255

Når en variabel inden for en template er assignet kan den ikke reassignes.

Men man kan assigne variablen hver gang man kommer ind i en template. Så via recursion kan man \"ændre\" den. Det er en ny instans af templaten hver gang.
Avatar billede thunderbear Nybegynder
07. september 2001 - 12:50 #2
Globale variable kan ikke lade sig goere i standard XSLT.

Saxon og Xalan har dog udvidelser saa man kan alligevel
Avatar billede Slettet bruger
26. oktober 2001 - 12:39 #3
Du kan godt have en global variabel, der gælder i alle templates - den kan bare ikke ændres. \"Konstant\" er nok et bedre ord...

Du kan evt. bruge en \"named template\" (<xsl:template name=\"tadaa\">) som du kan kalde med <xsl:call-template>. Hvis du definerer en variabel inde i template\'en kan du give den en værdi i kaldet til den - fungerer som en sub-rutine:

<!-- Definer \"sub\" -->
<xsl:template name=\"kaldmig\">
  <xsl:variable name=\"farve\" />
  Farven er: <xsl:value-of select=\"$farve\"/>
</xsl:template>

<!-- Kald til \"sub\" -->
<xsl:call-template name=\"kaldmig\">
<xsl:with-param name=\"farve\">#ff0000</xsl:with-param>
</xsl:call-template>

/CS
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