Toon posts:

[xsl] attribute waarde blijft niet ?

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb een probleempje

Ik heb een loop en moet per 2 rows uit mijn xml bestand op een lijn

Dan moet hij om de buurt van die 2 een andere achtergrond kleur geven.

Voor wie het niet niet snapt


[bgcolor=red ] row 1 row 2
[geen bgcolor] row 3 row 4
[bgcolor=red ] row 5 row 6
[geen bgcolor] row 7 row 8

Maar dit lukt me niet, alleen de eerst lijn krijgt een andere achtergrondkleur

Ik heb devolgende code gebruikt(in grote lijnen dan)

code:
1
2
3
4
5
6
7
8
<xsl:for-each select="//data/row">

<xsl:if test="position() mod 2 = 1"> 
      <xsl:attribute name="bgcolor">#666666</xsl:attribute>
</xsl:if>

   {en hier dan een tabel met 2  van die waardes}
</xsl:for-each>

  • marcusk
  • Registratie: Februari 2001
  • Laatst online: 26-09-2023
xsl:attribute gebruik je om een attribuut van een element in te stellen die 'er omheen' staat, dus:
XML:
1
2
3
4
5
6
<td>
  <xsl:if test="position() mod 2 = 1"> 
    <xsl:attribute name="bgcolor">#666666</xsl:attribute>
  </xsl:if>
  ...
</td>

Wat jij wilt kun je doen met xsl:variable:
XML:
1
2
3
4
5
6
7
<xsl:if test="position() mod 2 = 1"> 
      <xsl:variable name="bgcolor">#666666</xsl:attribute>
</xsl:if>

<td bgcolor="{$bgcolor}">
  ...
</td>

Verwijderd

Topicstarter
Dit heb ik er nu van gemaakt:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<xsl:if test="position() mod 2 = 1"> 
     <xsl:variable name="bgcolor" select="666666" />
</xsl:if>

<xsl:if test="position() mod 2 = 0"> 
     <xsl:variable name="bgcolors" select="343434" />
</xsl:if>
......
>
<
......
<td bgcolor="#{$bgcolor}" style="width:140px;height:10px;">

....


ik krijg dan de volgende error , dus dit werkt ook zo niet.

[error]
A reference to variable or parameter 'bgcolors' cannot be resolved. The variable or parameter may not be defined, or it may not be in scope.
[/error]

Verwijderd

Topicstarter
Ben er nu bijna uit, het probleem zit em in het feit dat die variabale waarde alleen binnen die if statement geldig is dus daarbuiten werkt die niet meer.

Dan moet ik de tabel maar binnnen dat if statement bouwen.

  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
Free your mind ;) .

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<xsl:transform version="1.0"
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 
  <xsl:template match="bla">
 
    <xsl:variable name="bgcolor">
      <xsl:choose>
        <xsl:when test="@class = '1'">666666</xsl:when>
        <xsl:otherwise>343434</xsl:otherwise>
      </xsl:choose>
    </xsl:variable>
 
    <boeh>
      <xsl:value-of select="$bgcolor"/>
    </boeh>
  </xsl:template>
 
  <xsl:template match="root">
    <koe>
      <xsl:apply-templates select="bla"/>
    </koe>
  </xsl:template>
</xsl:transform>


code:
1
2
3
4
5
6
7
8
<root>
  <bla class="1"/>
  <bla class="2"/>
  <bla class="1"/>
  <bla class="3"/>
  <bla class="3"/>
  <bla class="1"/>
</root>

[ Voor 28% gewijzigd door mbravenboer op 22-05-2003 10:38 ]

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
Hum, misschien ook maar ff laten zien wat eruit komt:

code:
1
2
3
4
5
6
7
8
9
10
<?xml version="1.0" encoding="UTF-8"?>

<koe>
  <boeh>666666</boeh>
  <boeh>343434</boeh>
  <boeh>666666</boeh>
  <boeh>343434</boeh>
  <boeh>343434</boeh>
  <boeh>666666</boeh>
</koe>

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment

Pagina: 1