[XML/XSL] rekenen met variabelen

Pagina: 1
Acties:

  • Allanon
  • Registratie: September 2001
  • Laatst online: 24-08 13:21

Allanon

appearance is overrated

Topicstarter
Ik heb de volgende XML:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?xml version="1.0" encoding="ISO-8859-1"?>
<sleutel nr="6">
  <column naam="general" nr="0">
    <catname naam="Period_Connotation">
      <item><cd>..s</cd><descr>saxon (0-1050)</descr></item>
      <item><cd>..n</cd><descr>norman (1050-1200)</descr></item>
      <item><cd>..&amp;</cd><descr>english or gothic (1200-1500)</descr></item>
      <item><cd>..t</cd><descr>tudor (1500-1560)</descr></item>
      <item><cd>..b</cd><descr>Elizabethan (1560-1600)</descr></item>
      <item><cd>..j</cd><descr>Jacobean (1600-1625)</descr></item>
      <item><cd>..c</cd><descr>Anglo-classic(1625-1700)</descr></item>
      <item><cd>..a</cd><descr>Queen Anne and Early Georg. (1700-1750)</descr></item>
      <item><cd>..g</cd><descr>Mid-georgian (1750-1800)</descr></item>
      <item><cd>..r</cd><descr>Regency etc(1800-1830)</descr></item>
      <item><cd>..v</cd><descr>Early Victorian (1830-1875)</descr></item>
      <item><cd>..i</cd><descr>Late Victorian (1875-1895)</descr></item>
      <item><cd>..e</cd><descr>Edwardian (1895-1918)</descr></item>
      <item><cd>..m</cd><descr>Modern (1918-2003)</descr></item>
    </catname>
  </column>
</sleutel>


en de volgende XSL:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<?xml version='1.0'?>
<xsl:stylesheet version="1.0"
     xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
     <xsl:output method="xml" omit-xml-declaration="no" indent="yes"/>
     <xsl:template match="/">       
         <xsl:for-each select="sleutel/column/catname/item">
            
            <xsl:variable name = "A" >
                <xsl:value-of select="."/>  
            </xsl:variable>     
            <xsl:variable name = "B" >
                <xsl:value-of select = "substring-after($A,'(')" />
            </xsl:variable>          
            <xsl:variable name = "C" >
            <xsl:value-of select = "substring-before($B,'-')" />
            </xsl:variable>     
            <xsl:variable name = "D" >
            <xsl:value-of select = "substring-after($B,'-')" />
            </xsl:variable>     
            <xsl:variable name = "E" >
            <xsl:value-of select = "substring-before($D,')')" />
            </xsl:variable> 
                             
         <xsl:value-of select = "$C" />
         <xsl:value-of select = "$E" />             
         </xsl:for-each>    
     </xsl:template>
</xsl:stylesheet>


Hier krijg ik dus een hele rits getallen uit, nou is het probleem dat ik deze wil gebruiken om een tijdsbalk mee te maken en dus een $C telkens van $E wil aftrekken en daarna nog even moet delen door het totaal.

Nou heb ik al wat boeken, sites en searches gebruikt maar dit kom ik nergens tegen. Is het mogelijk? Of moet ik er een andere taal bijroepen?

Suggesties over de code zijn trouwens ook welkom, net begonnen hiermee en voordat ik foute gewoontes aanleer

  • Allanon
  • Registratie: September 2001
  • Laatst online: 24-08 13:21

Allanon

appearance is overrated

Topicstarter
typisch, je zoekt 3 uur en 5 min na het posten......

code:
1
2
3
4
5
6
7
<xsl:variable name = "F" >
  2003
</xsl:variable>
        
<xsl:variable name = "G" >
  <xsl:value-of select = "(($E - $C) div $F) * 100" />
</xsl:variable>