Ben nu bezig om de elementen <subst> (betekent zelfstandig nw), <verbum> (=werkwoord), <adverbum> (=bijwoord) en <ptc> (=participium) uit een Latijnse tekst te halen om in een tabel met 4 kolommen te zetten. Probleem is de weergave: als ik nl. <xsl:value-of select="tekst/subst"/> zou gebruiken dan krijg ik natuurlijk maar één resultaat te zien in de kolom Substantivum. Nu wil ik dit oplossen met een for-each lus met daarin een <br/>, zodat alle resultaten onder elkaar in de kolommen van de tabel komen te staan. Probleem is, dat als ik deze aan zou roepen, dat dan alle resultaten zonder spaties direct na elkaar komen te staan i.p.v. onder elkaar. Hoe los ik dit op?
Hier de code:
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<!-- dit is het begin van het xsl en html-gedeelte -->
<xsl:template match="/">
<html>
<h1 align="center">
Sortering op zn, ww, bijw en ptc</h1>
<style>
body {
background-color: lightblue;
}</style>
<body>
<table border="1" cellpadding="4" cellspacing="0">
<tr>
<th>Substantivum</th>
<th>Verbum</th>
<th>Adverbum</th>
<th>Participium</th>
</tr>
<xsl:apply-templates select="latijn/livius"/>
</table>
</body>
</html>
</xsl:template>
<!-- het html en xsl gedeelte wordt afgesloten en een sjabloon wordt gedefinieerd-->
<xsl:template match="latijn/livius">
<tr>
<td>
<!-- dit zou 1 resultaat leveren-->
<xsl:value-of select="tekst/subst"/>
</td>
<td>
<!-- dit geeft alle resultaten, maar niet onder elkaar-->
<xsl:apply-templates select="tekst/verbum"/>
</td>
<td>
<xsl:apply-templates select="tekst/adv"/>
</td>
<td>
<xsl:apply-templates select="tekst/ptc"/>
</td>
</tr>
</xsl:template>
<!-- een template om ervoor te zorgen dat de substantiva onder elkaar komen te staan, wordt aangemaakt-->
<xsl:template match="livius">
<xsl:for-each select="tekst">
<xsl:value-of select="subst"/>
<br/>
</xsl:for-each>
<br/>
</xsl:template>
<!-- ook voor de werkwoorden is dit nodig -->
<!--
<xsl:template match="livius">
<xsl:for-each select="tekst">
<xsl:value-of select="verbum"/>
<br/>
</xsl:for-each>
<br/>
</xsl:template>-->
</xsl:stylesheet>
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<!-- dit is het begin van het xsl en html-gedeelte -->
<xsl:template match="/">
<html>
<h1 align="center">
Sortering op zn, ww, bijw en ptc</h1>
<style>
body {
background-color: lightblue;
}</style>
<body>
<table border="1" cellpadding="4" cellspacing="0">
<tr>
<th>Substantivum</th>
<th>Verbum</th>
<th>Adverbum</th>
<th>Participium</th>
</tr>
<xsl:apply-templates select="latijn/livius"/>
</table>
</body>
</html>
</xsl:template>
<!-- het html en xsl gedeelte wordt afgesloten en een sjabloon wordt gedefinieerd-->
<xsl:template match="latijn/livius">
<tr>
<td>
<!-- dit zou 1 resultaat leveren-->
<xsl:value-of select="tekst/subst"/>
</td>
<td>
<!-- dit geeft alle resultaten, maar niet onder elkaar-->
<xsl:apply-templates select="tekst/verbum"/>
</td>
<td>
<xsl:apply-templates select="tekst/adv"/>
</td>
<td>
<xsl:apply-templates select="tekst/ptc"/>
</td>
</tr>
</xsl:template>
<!-- een template om ervoor te zorgen dat de substantiva onder elkaar komen te staan, wordt aangemaakt-->
<xsl:template match="livius">
<xsl:for-each select="tekst">
<xsl:value-of select="subst"/>
<br/>
</xsl:for-each>
<br/>
</xsl:template>
<!-- ook voor de werkwoorden is dit nodig -->
<!--
<xsl:template match="livius">
<xsl:for-each select="tekst">
<xsl:value-of select="verbum"/>
<br/>
</xsl:for-each>
<br/>
</xsl:template>-->
</xsl:stylesheet>