3 svære om scope og tællere: XML-XSL
Her er tre rigtig svære !Jeg har en lille xml og en tilhørende xsl (se nedenfor) samt det output, der leveres, når jeg med et lille javaprogram trækker XML'en igennem XSL'en.
Bruger IE5.5 (MSXML3)
Imidlertid vil jeg gerne have udvidet outputtet med nogle tællere, samt nogle attributter, der ligger udenfor scope-
1. problem TÆLLEREN af Item1|item2 + sum i sidste linie
*OUTPUT* *ØNSKET OUTPUT**********
2 2 1 Jeg kan hardkode tallet 1
S 2 S 2 jeg kan sætte en counter
på "type1|type2" og lægge 1 til
S 2 S 3 ditto
2 2 4 jeg kan ikke bruge counteren mere,
så hvordan får jeg lagt 1 til dvs 3
3 3 1 Jeg kan hardkode tallet 1
T 3 T 2 jeg kan sætte en counter
på "type1|type2" og lægge 1 til
B 3 B 3 ditto
G 3 G 4 ditto
V 3 V 5 ditto
3 3 6 jeg kan ikke bruge counteren mere,
så hvordan får jeg lagt 1 til, dvs 6
*SLUT* 11
**SLUT**
2. problem Attributten medtages i et indre scope ?
*OUTPUT* *ØNSKET OUTPUT**********
2 2 1 I-Id(=2) læses
S 2 S 2 I-ID kan ikke læses, da jeg nu er
inde på næste niveau,
nemlig type1|type2
S 2 S 3 ditto
2 2 4 ditto
3 3 1 I-Id(=3) læses
T 3 T 2 I-ID kan ikke læses, da jeg nu er
inde på næste niveau,
nemlig type1|type2
B 3 B 3 ditto
G 3 G 4 ditto
V 3 V 5 ditto
3 3 6 ditto
*SLUT* 11
**SLUT**
3. problem en ny slut linie med et sumantal
*OUTPUT* *ØNSKET OUTPUT**********
2 2 1
S 2 S 2
S 2 S 3
2 2 4
3 3 1
T 3 T 2
B 3 B 3
G 3 G 4
V 3 V 5
3 3 6
11 tallet er lig med
3*antItem + antType1 + antType2 + 1
(=2*2+1+5+1 =11)
Men jeg kan jo ikke holde variablene antType1 og antType2 fra inderste scope, når jeg er tilbage i yderste scope ?
******************************** START PÅ XML *********
<?xml version="1.0" encoding="iso-8859-1" ?>
<?xxx1 kørsel="21/02-2002 16:48:13"?>
<udtraek>
<afregning>
<Nr>111</Nr>
<item>
<I-Id>2</I-Id>
<type-2>
<E-Id>S</E-Id>
</type-2>
<type-1>
<E-Id>S</E-Id>
</type-1>
</item>
<item>
<I-Id>3</I-Id>
<type-2>
<E-Id>T</E-Id>
</type-2>
<type-2>
<E-Id>B</E-Id>
</type-2>
<type-2>
<E-Id>G</E-Id>
</type-2>
<type-2>
<E-Id>V</E-Id>
</type-2>
</item>
</afregning>
</udtraek>
******************************** SLUT PÅ xML *********
*******OUTPUT*************
2
S
S
2
3
T
B
G
V
3
***SLUT på OUTPUT*********
***ØNSKET OUTPUT**********
2 #1
2#S#2
2#S#3
2 #4
3 #1
3#T#2
3#B#3
3#G#4
3#V#5
3 #6
#11
***SLUT på ØNSKET OUTPUT**
******************************** START PÅ xsL *********
<?xml version="1.0" encoding="ISO-8859-1" ?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html" />
<xsl:template match="/">
<html>
<head></head>
<body>
<xsl:apply-templates select="//item" />
</body>
</html>
</xsl:template>
<xsl:template match="item">
<TR>
<br></br>
<TD>
<xsl:value-of select="I-Id"/>
<xsl:apply-templates select="type-1"/>
<xsl:apply-templates select="type-2"/>
</TD>
<TD>
<br></br>
<xsl:value-of select="I-Id"/>
</TD>
</TR>
</xsl:template>
<xsl:template match="type-1|type-2">
<br></br>
<TR>
<TD>
<xsl:value-of select="E-Id"/>
</TD>
</TR>
</xsl:template>
</xsl:stylesheet>
******************************** SLUT PÅ XML *********