Változók átvétele XSL-ben
Az lenne a kérdésem, hogy xsl-ben miképpen tudom felhasználni egy templateben használt változót egy másik templatehez.
■ H | K | Sze | Cs | P | Szo | V |
---|---|---|---|---|---|---|
30 | 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 | 29 | 30 | 31 | 1 | 2 | 3 |
Paraméterként
Más módszer nincs, az XSL deklaratív nyelv, a változók valójában inkább konstansok, amiknek létrehozásukkor megváltoztathatatlanul rögzül az értékük.
Még esetleg globális változókról lehet szó, de ezeket template nem állíthatja elő, ezeknek is deklarálásukkor definiálni kell az értéküket (ami persze függhet a forrás XML-től). De minden bizonnyal a te esetedben a template állítja elő a változót, így az nem lehet globális.
próbálkoztam azzal is
Az attribútum neve: select
Amúgy milyen XSL értelmezőt használsz? Mert egy ilyen hibát egy jobbféle XSL értelmező már fordítási időben kijelez. A kódodban szereplő hiányzó záró tagekről és egyéb XML hibákról nem is beszélve.
tényleg rossz
Forrás XML, leforduló XSL
Viszont hogy a lényegre is reagálni tudjak, jó lenne mellékelni a kapott XML mellé a forrás XML-t és a helyesen leforduló XSL-t is. Anélkül hiába is próbálna bárki segíteni, csak a sötétben tapogatózna.
forrás+eredmény
Nem adod át a paramétert
Amúgy az XSL kódodban több tervezési hiba is van, amitől persze működhet, de pl. az alábbi típusú dolgokat egyértelműen kerülni kellene:
Persze valahol el kell kezdeni, remélem a további problémák megoldása során egyre jobban át fogod látni az XSL szemléletét, és szebb módszereket fogsz alkalmazni.
Köszönöm!
Kipróbáltam
Én nem fogok könyörögni, hogy tényleg azt küldd el, ami nálad van. Azonkívül úgy érzem, hogy a te megoldásod már nagyon elment rossz irányba ahhoz, hogy jól ki lehessen javítani. Így is sokkal több időt szántam a dologra, mint eredetileg terveztem. Bocs, de nem fogom helyetted megoldani.
Annyit tudok hozzátenni, ahogy látom, ha 3-as szintű címről van szó, akkor az első három . előtti rész a fejezet sorszáma, ezt három substring-before függvénnyel és összefűzésekkel tudod kiszedni, ha így akarod megoldani a dolgot.