Toon posts:

[XSL] Preceding-sibling test

Pagina: 1
Acties:

Verwijderd

Topicstarter
XSL : juiste forum of niet ?

iig, ik ben sinds een paar dagen met XSL aan het stoeien, ik weet niet of ik zo de goede kant op ga, misschien dat jullie een oplossing hebben :

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<xsl:for-each select="//z:row">
                <xsl:if test="@stepMethod='NORMAL'">
        >>>>>>>>>>>>>>>>>>  <xsl:if test="@stepMethod!='//preceding-sibling::@stepMethod'"> <<<<<<<<<<<<            
                    <h3 style="background:#00FF00;border: 1px solid #999999;padding:4px;">NORMAL</h3>
                    </xsl:if>
                </xsl:if>
                
                <xsl:if test="@stepMethod='4Y'">
                <h3 style="background:#FFFF00;border: 1px solid #999999;padding:4px;">4-EYES - ALWAYS</h3>
                </xsl:if>
                
                <xsl:if test="@stepMethod='4R'">
                <h3 style="background:#FF0000;color:#FFFFFF;border: 1px solid #999999;padding:4px;">4-EYES - NOT IN ADW</h3>
                </xsl:if>
                
                <h5><xsl:value-of select="@stepText"/></h5>
            </xsl:for-each>


Wat ik probeer te bereiken is op de lijn van de >>>>> een vergelijking te doen met de vorige sibling, is @stepMethod anders dan huidige, dan moet hij het stukje html laten zien, anders niet.

Er gaat iets fout aangezien hij nu iig nooit voldoet.

Any ideas ?

[ Voor 21% gewijzigd door Verwijderd op 30-01-2004 00:18 ]


  • marcusk
  • Registratie: Februari 2001
  • Laatst online: 26-09-2023
<xsl:if test="@stepMethod!='//preceding-sibling::@stepMethod'">
Dat werkt niet om een aantal redenen:
[ulist]
• Je vergelijkt @stepMethod nu met de letterlijke tekst '//preceding-sibling::@stepMethod'. De aanhalingstekens moeten dus weg.
• //preceding-sibling match de p.s.'s van alle nodes. Je wilt alleen die van de huidige node hebben. // moet je daarvoor vervangen door ./ (of weglaten).
• preceding-sibling levert meerdere nodes op. Daarvan wil je alleen de eerste hebben.
• axis::@attribute werkt niet. Dat moet zijn axis::*/@attribute.
[/ulist]
Je krijgt dan:
code:
1
preceding-sibling::*[1]/@stepMethod

[ Voor 82% gewijzigd door marcusk op 30-01-2004 00:35 ]


Verwijderd

Topicstarter
marcusk schreef op 30 januari 2004 @ 00:31:
code:
1
preceding-sibling::*[1]/@stepMethod
Een erg duidelijk verhaal (en werkend :9 ), bedankt !

Gaat dit ook op voor de following-sibling ?