Avatar billede agony3 Nybegynder
30. oktober 2002 - 22:15 Der er 10 kommentarer og
1 løsning

variabler i xml

Her er en stump af min kode som ikke virker men jeg tor i kan se hvad der er jeg gerne vil:

    <xsl:variable name="position" select="position() mod 2" />
   
    <xsl:choose>
      <xsl:when test="$position > 0">
          <xsl:variable name="color" select='FFFFC5' />
        </xsl:when>
      <xsl:otherwise>
        <xsl:variable name="color" select='DCDDDC' />
      </xsl:otherwise>
    </xsl:choose>
   
    <tr bgcolor="#<xsl:value-of select="$color">">

For dem som ikke lige kan se det så vil jeg gerne anvende værdien på den variabel som jeg definere i min <xsl:choose> i noget HTML længere nede i samme template.
Avatar billede Slettet bruger
30. oktober 2002 - 22:19 #1
Hvorfor ikke benytte css? er det ikke til formatering?
Avatar billede agony3 Nybegynder
30. oktober 2002 - 22:20 #2
jo det er den men i dette tilfælde er det hveranden <tr> som skal have en anden farve. Tror jeg ikke man kan med css alene.
Avatar billede Slettet bruger
30. oktober 2002 - 22:20 #3
XSLT:
  <tr bgcolor="#{$color}">

MS XSL:
  <tr><xsl:attribute name="bgcolor">#<xsl:value-of select="$color"></xsl:attribute>

/CS

PS: Brug XSLT for guds skyld :-)
Avatar billede Slettet bruger
30. oktober 2002 - 22:22 #4
hmmm vil nu mene det er noget skidt at benytte xml til formatering. Men jeg har heller ikke lige et bud på hvordan man gør med css. Vil dog lige tænke lidt over det.
Avatar billede Slettet bruger
30. oktober 2002 - 22:23 #5
Eller: Definér flg. i CSS:

.row0 { background-color: #ffffc5; }
.row1 { background-color: #dcdddc; }

- og gør sådan her i XSLT:

<tr class="row{number(position() mod 2 == 0)}">


/CS
Avatar billede agony3 Nybegynder
30. oktober 2002 - 22:23 #6
greystate : din XSLT metode har jeg prøvet men får følgende fejl:

A reference to variable or parameter 'color' cannot be resolved. The variable or parameter may not be defined, or it may not be in scope.


Må vel betyde at den ikke tror at variablen findes.
Avatar billede agony3 Nybegynder
30. oktober 2002 - 22:25 #7
en variabel sat i en choose sætning kan ikke tilgås udenfor denne
Avatar billede Slettet bruger
30. oktober 2002 - 22:29 #8
Fejlen er at du ikke må definere den (samme variabel) to gange - gør sådan:

<xsl:variable name="color">
  <xsl:choose>
      <xsl:when test="$position > 0">FFFFC5</xsl:when>
      <xsl:otherwise>DCDDDC</xsl:otherwise>
    </xsl:choose>
</xsl:variable>

/CS
Avatar billede agony3 Nybegynder
30. oktober 2002 - 22:31 #9
greystate < du er en helt. Afprøvede både din css løsnig og den sidste. Begge virker så nu er jeg glad igen :) tak
Avatar billede Slettet bruger
30. oktober 2002 - 22:33 #10
Det var godt! :)

/CS
Avatar billede Slettet bruger
30. oktober 2002 - 22:34 #11
Ja, jeg var da ikke helt ved siden af:)
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