[XSL/PHP] regel tussen iedere week?

Pagina: 1
Acties:

  • jsiegmund
  • Registratie: Januari 2002
  • Laatst online: 26-04 22:43
Ik heb een PHP script wat een agenda output in XML vorm. Dit bestaat uit een aantal verschillende "afspraak" nodes die op chronologische volgorde gegenereerd worden. Nu bevat iedere node een child "datum" waarin de datum staat (duh) en die node heeft een attribuut "dag" waarin de dag van de week staat in 2 letter formaat (ma/di/wo etc).

De gegevens worden vervolgens door een XSLT processor heen gejaagd waar er een XSL opmaak op geplakt wordt, die van de data netjes een tabelletje maakt; iedere afspraak is een nieuwe rij in de tabel. Om de leesbaarheid van de tabel wat te bevorderen wil ik na iedere week een regel extra invoegen (leeg & met andere kleur etc, niet belangrijk). De vraag: waar ga ik dat doen?

2 mogelijkheden:
- na iedere week het PHP script een "week" node laten plaatsen en die als zodanig processen
- in de XSL file een controle maken die hiervoor zorgt

Het eerste lijkt me veel makkelijker, maar zorgt er wel voor dat de XML file redundante info bevat, het tweede lijkt me (veel) moeilijker maar houdt de XML file netjes en kan later aangepast worden zonder dat de DTD daarvoor veranderd hoeft te worden. De rij in de tabel bevat verder toch geen gegevens, dus een lege node moet al genoeg zijn, alleen vind ik dat zo lelijk :r

  • Borizz
  • Registratie: Maart 2005
  • Laatst online: 02-01 15:55
Je geeft zelf de oplossing al :? ? Als het in XSL kan (ben er niet zo in thuis) zou ik het daarin doen.

If I can't fix it, it ain't broken.


  • Roeligan
  • Registratie: December 2001
  • Laatst online: 22-07-2025

Roeligan

Feyenoord

In de XSL kan je dat toch wel oplossen, je doet toch een aantal loops om je data te presenteren, na elke zondag een extra regel is dan toch niet zo'n probleem?

[ Voor 7% gewijzigd door Roeligan op 24-10-2005 13:29 ]

A real man fears not mortality for it's death, he fears mortality for it's lack of life!
RatPack #814


Verwijderd

Ik zou de XML zo schoon mogelijk houden. Het is juist de bedoeling van XSL om de opmaak te verzorgen.

  • Salandur
  • Registratie: Mei 2003
  • Laatst online: 14:19

Salandur

Software Engineer

Roeligan schreef op maandag 24 oktober 2005 @ 13:29:
In de XSL kan je dat toch wel oplossen, je doet toch een aantal loops om je data te presenteren, na elke zondag een extra regel is dan toch niet zo'n probleem?
Niet na elke zondag een nieuwe regel, want dan komen er
a) geen nieuwe regels als er geen afspraken zijn op zondag
b) tussen elke zondagafspraken een nieuwe regel bij meerdere afspraken op zondag.

Als het met XSL mogelijk is om naar de vorige waarde te kijken, kijk dan of de vorige waarde in de vorige week ligt ten opzichte van je huidige waarde

Assumptions are the mother of all fuck ups | iRacing Profiel


  • chris
  • Registratie: September 2001
  • Laatst online: 11-03-2022
Kan je een iets concreter voorbeeld van je invoer geven? En is het zo dat er iedere dag een afspraak is? Je zou er aan kunnen denken om bijvoorbeeld zo je xml te representeren:

code:
1
2
3
4
5
6
7
8
9
<week>
  <ma>
    <afspraak>afspraak 1</afspraak>
  </ma>
  <vr>
    <afspraak>afspraak 2</afspraak>
    <afspraak>afspraak 3</afspraak>
  </vr>
</week>


Dan is het vrij eenvoudig. Anders zul je misschien eerst je code moeten omzetten naar iets wat hier op lijkt en dit processen. Maar als je een voorbeeld geeft dan kunnen we waarschijnlijk wat beter advies geven :)

  • jsiegmund
  • Registratie: Januari 2002
  • Laatst online: 26-04 22:43
Nee, op het moment ziet het er zo uit:
XML:
1
2
3
4
5
6
7
8
<afspraken>
  <afspraak>
    <datum dag="ma">24-10-2005</datum>
  </afspraak>
  <afspraak>
    <datum dag="di">25-10-2005</datum>
  </afspraak>
</afspraken>


En inderdaad wordt het dan lastig omdat er niet elke zondag een afspraak zal zijn. Ik zie het niet zo zitten om hiervoor heel m'n XML structuur te gaan omgooien, was er eigenlijk wel blij mee op deze manier. Ik denk dat ik het toch maar op PHP houdt en dan gewoon een <week> node ertussen door gooi, kan ik ook meteen het weeknummer van die week uitrekenen in de PHP code. In ieder geval een stuk makkelijker als een oplossing in XSL, want zo handig zin die niet (vind ik).

Uiteindelijk wordt het dan:
XML:
1
2
3
4
5
6
7
8
9
<afspraken>
  <afspraak>
    <datum dag="ma">24-10-2005</datum>
  </afspraak>
  <week>Week #45</week>
  <afspraak>
    <datum dag="ma">31-10-2005</datum>
  </afspraak>
</afspraken>

[ Voor 34% gewijzigd door jsiegmund op 24-10-2005 15:58 ]


  • Borizz
  • Registratie: Maart 2005
  • Laatst online: 02-01 15:55
iCe01 schreef op maandag 24 oktober 2005 @ 15:56:

Uiteindelijk wordt het dan:
XML:
1
2
3
4
5
6
7
8
9
<afspraken>
  <afspraak>
    <datum dag="ma">24-10-2005</datum>
  </afspraak>
  <week>Week #45</week>
  <afspraak>
    <datum dag="ma">31-10-2005</datum>
  </afspraak>
</afspraken>
Waarom niet zo?

XML:
1
2
3
4
5
6
7
8
9
10
11
12
<afspraken>
<week nummer="44">  
  <afspraak>
    <datum dag="ma">24-10-2005</datum>
  </afspraak>
</week>
<week nummer="45">
  <afspraak>
    <datum dag="ma">31-10-2005</datum>
  </afspraak>
</week>
</afspraken>


Dan heb je een duidelijke structuur die semantisch nog klopt ook en waar je heel gemakkelijk achter elke week een witruimte kan laten.

If I can't fix it, it ain't broken.


  • jsiegmund
  • Registratie: Januari 2002
  • Laatst online: 26-04 22:43
Jep dat is een prima oplossing, maar blijft een oplossing in PHP. Vind dat XSL af en toe toch tekort komt bij dit soort problemen. Okay, het is ook maar opmaak natuurlijk maar de meeste functionaliteit zit er wel in, is alleen in veel gevallen omslachtig in de implementatie... vind ik dan :)

  • chris
  • Registratie: September 2001
  • Laatst online: 11-03-2022
Nou, het is een functionele programmeertaal, en dat is inderdaad wat anders dan een taal als php :). Je kan er ook andere dingen mee, die in php moeilijker zijn. Uiteindelijk zijn ze allebei Turing-compleet, maar toch zijn kleine dingen in de ene taal soms erg omslachtig in de andere taal.
Pagina: 1