Voor een rapport wordt een XML-bericht met XSLT omgewurmd naar HTML.
Dat gaat best aardig, maar voor één veld lukt het niet de layout goed te krijgen.
De structuur per rij van het rapport is als volgt:
V | I | XML1 | XML 2
V = volgnummer
I = indicator (uit bericht1)
XML1 = gegevens uit bericht1 (2 kolommen)
XML2 = gegevens uit bericht2 (2 kolommen)
Voor de dwarsligger is het:
kolom 1 = hardcoded, hoogte afhankelijk van kol3+1
kolom 2 = leeg, hoogte afhankelijk van kol3+1
kolom 3/4 cel 1 = hardcoded
kolom 3/4 cel 2 = uit XML1 (11b)
kolom 3/4 cel "repeat" = afhankelijk van aantal voorkomens in XML1 (11a)
kolom 5/6 cel 1 = hardcoded
kolom 5/6 cel 1 = uit XML2 (11)
XML1 ziet er zo uit:
XML2 ziet er zo uit:
Wat ik wil bereiken is dat de rowspan van de "hoge" cellen, afhankelijk wordt van de repeating cellen uit XML1 11a.
Het lukt om het aantal rijen te vinden met:
Het lukt me echter niet om die waarde dan weer te gebruiken als attribuut voor de <td> te gebruiken:
Het aantal nodes kan ik ook vinden met last(), maar het lukt me niet om daarbij de juiste context te zetten. last() kan blijkbaar ook niet gebruikt worden als:
op die manier snapt de parser het niet meer.
Zit ik op het juiste pad, of zou ik het helemaal anders aan moeten pakken?
Dat gaat best aardig, maar voor één veld lukt het niet de layout goed te krijgen.
De structuur per rij van het rapport is als volgt:
V | I | XML1 | XML 2
V = volgnummer
I = indicator (uit bericht1)
XML1 = gegevens uit bericht1 (2 kolommen)
XML2 = gegevens uit bericht2 (2 kolommen)
Voor de dwarsligger is het:
11 | Behandelwijze: | Motivatie voor behandelwijze 'overig': | |||
overig (11b) | Toelichting uit xml2 (11) | ||||
repeat2 (11a) | |||||
repeat1 (11a) |
kolom 1 = hardcoded, hoogte afhankelijk van kol3+1
kolom 2 = leeg, hoogte afhankelijk van kol3+1
kolom 3/4 cel 1 = hardcoded
kolom 3/4 cel 2 = uit XML1 (11b)
kolom 3/4 cel "repeat" = afhankelijk van aantal voorkomens in XML1 (11a)
kolom 5/6 cel 1 = hardcoded
kolom 5/6 cel 1 = uit XML2 (11)
XML1 ziet er zo uit:
code:
1
2
3
4
5
6
7
8
9
| <vak11a> <behWijzeCode>007</behWijzeCode> </vak11a> <vak11a> <behWijzeCode>006</behWijzeCode> </vak11a> <vak11b> <behWijzeOverig>OVERIG BEHWaa aaa aaa aa</behWijzeOverig> </vak11b> |
XML2 ziet er zo uit:
code:
1
2
3
| <vak11> <motivAndereBehWijze>motivatie van andere behandelwijze </motivAndereBehWijze> </vak11> |
Wat ik wil bereiken is dat de rowspan van de "hoge" cellen, afhankelijk wordt van de repeating cellen uit XML1 11a.
Het lukt om het aantal rijen te vinden met:
code:
1
2
3
| <xsl:variable name="aantal_nodes"> <xsl:value-of select="count(../n1:vak11a)"/> </xsl:variable> |
Het lukt me echter niet om die waarde dan weer te gebruiken als attribuut voor de <td> te gebruiken:
code:
1
| <td align="left" valign="top" rowspan="$aantal_nodes" width="3%"> |
Het aantal nodes kan ik ook vinden met last(), maar het lukt me niet om daarbij de juiste context te zetten. last() kan blijkbaar ook niet gebruikt worden als:
code:
1
| <td align="left" valign="top" rowspan=last(vak11a) width="3%"> |
op die manier snapt de parser het niet meer.
Zit ik op het juiste pad, of zou ik het helemaal anders aan moeten pakken?