[XML / XSL] blanco regel in for-each loop

Pagina: 1
Acties:

  • rappie_nl
  • Registratie: Juni 2005
  • Laatst online: 17:17

rappie_nl

Gewoon doen

Topicstarter
Ik ben bezig met een XSLT file aan het maken om een medewerkers rooster dat in XML gemaakt/opgeslagen wordt te kunnen uploaden naar intranet. Hier voor gebruik ik gewoon een for-each loop om door alle medewerkers in deze XML file heen te lopen zeg maar.

Wat ik graag wil is dat tussen na elke andere medewerker een blanco regel komt. Dan wordt het geheel weer een beetje leesbaar en overzichelijk.

Momenteel ziet de output er zo uit:
Naam         datum             start end -time
John          2006-05-05     06:00-12:00
John          2006-05-05     06:00-12:00
John          2006-05-05     09:00-18:00
Erik          2006-05-06     08:00-14:00
Erik          2006-05-07     06:00-12:00
Nick          2006-05-05     12:00-20:00
Nick          2006-05-06     14:00-22:00
Nick          2006-05-07     14:00-22:00
Mary          2006-05-05     10:00-20:00


Welke functies kan gebruiken om z'n blanco regel na elke andere medewerker te krijgen?

  • djc
  • Registratie: December 2001
  • Laatst online: 08-09-2025

djc

Je kan iets met een XPath expression doen, weet niet de precieze syntax:

code:
1
<xsl:if test="preceding::author != author"><br /></xsl:if>

Rustacean


  • rappie_nl
  • Registratie: Juni 2005
  • Laatst online: 17:17

rappie_nl

Gewoon doen

Topicstarter
Volgens mij komt dit idd redelijk in de buurt. Maar dit is redelijk nieuw voor mij, heeft iemand een goede uitleg van deze functie preceding::author? Ik begrijp de werking er van namelijk niet helemaal.

  • prototype
  • Registratie: Juni 2001
  • Niet online

prototype

Cheer Bear

the preceding axis contains all nodes in the same document as the context node that are before the context node in document order, excluding any ancestors and excluding attribute nodes and namespace nodes
Bron: http://www.zvon.org/xxl/XSLTreference/Output/index.html
Bookmark die reference btw, heel handig.

Waar manuzhai volgens mij op probeert te doelen is om in document order te kijken of er een sequentie is waarmee auteuren nog gelijk zijn. Anders gezegd, is de vorige auteur gelijk aan de huidige auteur? Zo nee, zet er een breakrule tussen. Dit werkt natuurlijk alleen volgens mij zoals je wil als auteuren dus al gegroupeerd staan in je xml boom, i.e. dat ze al correct in document order staan. Bovendien dien je volgens mij daarbij ook nog, afhankelijk van je boom structuur, die XPath expressie op de naam van de auteur op te laten gaan, als dat de identifier is van een auteur. Manuzhai gaat er volgens mij nu van uit dat je de tag author gebruikt als de tag om de naam van de auteur mee weer te geven, i.e. als de identifier van je auteur. Beter is het om even je xml boom hier weer te geven, zodat we je beter van dienst kunnen zijn hier.

  • djc
  • Registratie: December 2001
  • Laatst online: 08-09-2025

djc

Ik maak inderdaad al een aantal assumpties. Omdat de OP zelf niet echt veel informatie heeft gegeven heb ik hem maar een handvat aangereikt met een techniek die ik zelf wel eens gebruikt heb.

Rustacean