Toon posts:

[XSL] alleen "weergeven" als element bestaat

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hallo allemaal,

Ik ben mijn website aan het maken met XML,XSL. Het is de bedoeling dat er verschillende XMl (eigenlijk de output van PHP) bestanden komen en maar een XSL bestand. Op sommige pagina's komt een tabel in XML heb ik het zo:

<rij>
<kolom1>foo</kolom1>
<kolom2>bar</kolom2>
</rij>
(dit is de output van PHP en dat ziet er goed uit)

Nu komt in mijn XSL bestand zo iets:

<TABLE ...enz>
<TR>
<TH>Kolom 1</TH>
<TH>Kolom 2</TH>
</TR>
<xsl:for-each select="rij">
<TR>
... de rest alles gaat hier goed
</TR>
</xsl:for-each.
</TABLE>

Dit staat onder in mijn XSL bestand. Het probleem is nu echter dat op iedere pagina een tabel-header komt te staat terwijl dat natuurlijk alleen moet als ik ook een tabel wil. mijn vraag is dan ook: Hoe kan ik kijken dat bijvoorbeeld het element <rij> bestaat in een XSL-bestand en mij probleem zo kan worden verholpen

als vast bedankt

henk erik

  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
henkerik: Hoe kan ik kijken dat bijvoorbeeld het element <rij> bestaat in een XSL-bestand en mij probleem zo kan worden verholpen
Ik neem aan dat je hier XML-bestand bedoelt?

Oplossing is vrij eenvoudig. Kijk maar eens naar de count functie... eventueel kan je dit in combinatie met een if of een choice gebruiken. Het is natuurlijk fraaier om met meerdere templates te werken in dit geval. Je kan zelfs count helemaal weglaten en direct matchen:

<xsl:template match="bla[rij]">

matched alleen als in element bla een rij element zit. Ook kan je dit natuurlijk opschrijven met de count:

<xsl:template match="bla[count(rij) > 0]">

Op http://www.zvon.org is een hele prettig reference te vinden van XSL. Daarin vind je alle XSL elementen en de beschikbare functies + een korte uitleg. Als je de er even bij pakt kan je makkelijk zoeken naar de mogelijkheden :) . In de tutorial op http://www.xfront.com komt dit ook ter sprake.

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment