I have problem with adding new lines after each point (A., B., C.)
Here is the code:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" version="1.0" encoding="UTF-8"/>
<xsl:param name="css"/>
<xsl:template match="/osoby/grupaStudentow/student[3]">
<html>
<body>
<h1>
<b>zadanie 1</b>
</h1>
<t>
A. nazwisko biezacego elementu:
<xsl:value-of select="./child::nazwisko"/>

B. element biezacy z podelementami:
<xsl:value-of select="descendant-or-self::*"/>

C. element o nazwie grupaPracownikow:
<xsl:value-of select="following::grupaPracownikow"/>
</t>
</body>
</html>
</xsl:template>
<xsl:template match="/">
<html>
<body>
<xsl:apply-templates select="//student[3]"/>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
I have tried these: 
 
 
 <text></text>
and nothing seems to work.
Also tried a variable:
<xsl:variable name="newline">xsl:text</xsl:text></xsl:variable>
but I don't know exacly where to put the declaration, but as I tried different places it didn't work.
XML file:
<osoby>
<grupaStudentow>
<student plec="m">
<imie>Jan</imie>
<nazwisko>Bohatyrowicz</nazwisko>
<nrAlbumu>123459</nrAlbumu>
<wiek> 21 </wiek>
<zdobytePunkty> 40 </zdobytePunkty>
</student>
<student plec="k">
<imie>Stefania</imie>
<nazwisko>Rudecka</nazwisko>
<nrAlbumu>127687</nrAlbumu>
<wiek> 23 </wiek>
<zdobytePunkty> 100</zdobytePunkty>
</student>
<student plec="m">
<imie>Teofil</imie>
<nazwisko>Różyc</nazwisko>
<nrAlbumu> 765432</nrAlbumu>
<wiek> 24 </wiek>
<zdobytePunkty> 80</zdobytePunkty>
</student>
<student plec="k">
<imie>Aleksandra</imie>
<nrAlbumu>445566</nrAlbumu>
<nazwisko>Billowiczówna</nazwisko>
<wiek> 22 </wiek>
<zdobytePunkty> 75</zdobytePunkty>
</student>
<student plec="m">
<nazwisko>Andrzej</nazwisko>
<imie>Kmicic</imie>
<wiek> 20 </wiek>
<zdobytePunkty> 10</zdobytePunkty>
</student>
</grupaStudentow>
<grupaPracownikow>
<pracownik plec="m">
<imie> Michał</imie>
<nazwisko> Wołodyjowski</nazwisko>
<nr_prac> 87987</nr_prac>
<wiek> 60 </wiek>
</pracownik>
<pracownik plec="m">
<imie> Bogusław</imie>
<nazwisko> Radziwił</nazwisko>
<nr_prac> 65665</nr_prac>
<wiek> 40 </wiek>
</pracownik>
<pracownik plec="k">
<imie> Barbara</imie>
<nazwisko> Wołodyjowska</nazwisko>
<nr_prac> 56734</nr_prac>
<wiek> 45 </wiek>
</pracownik>
</grupaPracownikow>
</osoby>
CodePudding user response:
Controlling white-space in XSLT depends on the @method
of xsl:output
, and can vary from processor to processor.
I've tried 

and 
independently and together, and get different results. I cannot tell if that's because of XSL or because I'm on a Mac, and my Mac generally expects x0A
(LF). Windows expects/uses the CRLF, 

On my Mac, using xsltproc, this:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" version="1.0" encoding="UTF-8" />
<xsl:template match="/">
<html>
<body>
<xsl:text>Witam!</xsl:text>
<xsl:text>
</xsl:text>
<xsl:text>Linia tekstu</xsl:text>
<xsl:text>
</xsl:text>
<xsl:text>Kolejna linijka tekstu</xsl:text>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
results in this:
<html><body>Witam!
Linia tekstu
Kolejna linijka tekstu</body></html>
But that will one render on one line the browser:
Like @MartinHonnen suggested, I suggest using HTML elements to control the appearance:
...
<body>
<h2>Witam!</h2>
<p>Linia tekstu</p>
<p>Kolejna linijka tekstu</p>
</body>
...
or
...
<body>
<h2>Witam!</h2>
<p>
Linia tekstu<br/>
Kolejna linijka tekstu
</p>
</body>
...