XSLT – Transformacja
Przykładowe badanie: Jak przekształcić XML w XHTML za pomocą XSLT?
Szczegóły tego przykładu zostaną wyjaśnione w następnym rozdziale.
Prawidłowa deklaracja arkusza stylów
Elementem głównym, który deklaruje, że dokument jest arkuszem stylów XSL, jest <xsl:stylesheet> lub <xsl:transform>.
Uwaga: <xsl:stylesheet> i <xsl:transform> są całkowicie synonimami i można ich użyć!
Prawidłowy sposób deklarowania arkusza stylów XSL zgodnie z zaleceniem W3C XSLT to:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
lub:
<xsl:transform version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
Aby uzyskać dostęp do elementów, atrybutów i funkcji XSLT, musimy zadeklarować przestrzeń nazw XSLT na górze dokumentu.
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" wskazuje na oficjalną przestrzeń nazw W3C XSLT. Jeśli używasz tej przestrzeni nazw, musisz również dołączyć atrybut version="1.0".
Zacznij od surowego dokumentu XML
Chcemy przekształcić następujący dokument XML ("cdcatalog.xml") do XHTML:
<?xml version="1.0" encoding="UTF-8"?>
<catalog>
<cd>
<title>Empire Burlesque</title>
<artist>Bob Dylan</artist>
<country>USA</country>
<company>Columbia</company>
<price>10.90</price>
<year>1985</year>
</cd>
.
.
</catalog>
Przeglądanie plików XML w IE, Chrome, Firefox, Safari i Opera: Otwórz plik XML (kliknij poniższy link) — Dokument XML zostanie wyświetlony z kodowanymi kolorami elementami głównymi i podrzędnymi (z wyjątkiem Safari). Często po lewej stronie elementów znajduje się znak plus (+) lub minus (-), który można kliknąć, aby rozwinąć lub zwinąć strukturę elementu. Wskazówka: Aby wyświetlić surowe źródło XML, kliknij prawym przyciskiem myszy plik XML i wybierz "Wyświetl źródło"!
Utwórz arkusz stylów XSL
Następnie tworzysz arkusz stylów XSL ("cdcatalog.xsl") z szablonem transformacji:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<body>
<h2>My CD Collection</h2>
<table border="1">
<tr bgcolor="#9acd32">
<th>Title</th>
<th>Artist</th>
</tr>
<xsl:for-each select="catalog/cd">
<tr>
<td><xsl:value-of select="title"/></td>
<td><xsl:value-of select="artist"/></td>
</tr>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
Połącz arkusz stylów XSL z dokumentem XML
Dodaj odwołanie do arkusza stylów XSL do dokumentu XML ("cdcatalog.xml"):
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="cdcatalog.xsl"?>
<catalog>
<cd>
<title>Empire Burlesque</title>
<artist>Bob Dylan</artist>
<country>USA</country>
<company>Columbia</company>
<price>10.90</price>
<year>1985</year>
</cd>
.
.
</catalog>
Jeśli masz przeglądarkę zgodną z XSLT, z łatwością przekształci ona Twój XML na XHTML.
Szczegóły powyższego przykładu zostaną wyjaśnione w kolejnych rozdziałach.