Inne działy

 

XSLT - transformacja

 

Przeanalizujmy przykład: jak przekształcić XML przy użyciu XSLT XHTML.

Szczegóły w tym przykładzie zostaną wyjaśnione w następnym rozdziale.


 

Właściwa deklaracja arkusza stylów

Elementem głównym dokumentu, którym deklaruje się arkusz stylów XSL jest

 <xsl:stylesheet> lub <xsl:transform>.

Uwaga: <xsl:stylesheet> i <xsl:transform> są całkowicie jednoznaczne i każdy z nich może być stosowany!

Prawidłowy sposób, aby zadeklarować arkusz stylów XSL, zgodnie z zaleceniami W3C XSLT jest:

 

<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 XSLT, atrybutów i funkcji musimy zadeklarować przestrzeń nazw XSLT w górnej części dokumentu.

Deklaracja xmlns:xsl="http://www.w3.org/1999/XSL/Transform" wskazuje na oficjalną przestrzeń nazw W3C XSLT. Jeśli używasz tej przestrzeni nazw, również musi zawierać atrybut version="1.0".


 

Start z surowym dokumentem XML

Chcemy, aby przekształcić następujący dokument XML ("cdkatalog.xml") w XHTML:

 

<?xml version="1.0" encoding="UTF-8"?>
<katalog>
  <cd>
    <tytuł>Empire Burlesque</tytuł>
    <artysta>Bob Dylan</artysta>
    <kraj>USA</kraj>
    <firma>Columbia</firma>
    <cena>10.90</cena>
    <rok>1985</rok>
  </cd>
.
.
</katalog>

Przeglądanie plików XML w Firefox i Internet Explorer: Otwórz plik XML (zazwyczaj poprzez kliknięcie na link) - dokument XML zostanie wyświetlony z kolorowym elementem głównym i elementami podrzędnymi. Znak plus (+) lub minus (-) z lewej strony elementów można kliknąć, aby rozwinąć lub zwinąć strukturę elementów. Aby zobaczyć surowe źródła XML (bez znaków + i - ), wybierz opcję "Wyświetl źródło strony" lub "pokaż źródło" z menu przeglądarki lub użyj skrótu CTRL + U.

Zobacz kod źródłowy pliku cdkatalog.xml

 

<katalog>
<cd>
<tytuł>Empire Burlesque</tytuł>
<artysta>Bob Dylan</artysta>
<kraj>USA</kraj>
<firma>Columbia</firma>
<cena>10.90</cena>
<rok>1985</rok>
</cd>
<cd>
<tytuł>Hide your heart</tytuł>
<artysta>Bonnie Tyler</artysta>
<kraj>UK</kraj>
<firma>CBS Records</firma>
<cena>9.90</cena>
<rok>1988</rok>
</cd>
<cd>
<tytuł>Greatest Hits</tytuł>
<artysta>Dolly Parton</artysta>
<kraj>USA</kraj>
<firma>RCA</firma>
<cena>9.90</cena>
<rok>1982</rok>
</cd>
<cd>
<tytuł>Still got the blues</tytuł>
<artysta>Gary Moore</artysta>
<kraj>UK</kraj>
<firma>Virgin records</firma>
<cena>10.20</cena>
<rok>1990</rok>
</cd>
<cd>
<tytuł>Eros</tytuł>
<artysta>Eros Ramazzotti</artysta>
<kraj>EU</kraj>
<firma>BMG</firma>
<cena>9.90</cena>
<rok>1997</rok>
</cd>
<cd>
<tytuł>One night only</tytuł>
<artysta>Bee Gees</artysta>
<kraj>UK</kraj>
<firma>Polydor</firma>
<cena>10.90</cena>
<rok>1998</rok>
</cd>
<cd>
<tytuł>Sylvias Mother</tytuł>
<artysta>Dr.Hook</artysta>
<kraj>UK</kraj>
<firma>CBS</firma>
<cena>8.10</cena>
<rok>1973</rok>
</cd>
<cd>
<tytuł>Maggie May</tytuł>
<artysta>Rod Stewart</artysta>
<kraj>UK</kraj>
<firma>Pickwick</firma>
<cena>8.50</cena>
<rok>1990</rok>
</cd>
<cd>
<tytuł>Romanza</tytuł>
<artysta>Andrea Bocelli</artysta>
<kraj>EU</kraj>
<firma>Polydor</firma>
<cena>10.80</cena>
<rok>1996</rok>
</cd>
<cd>
<tytuł>When a man loves a woman</tytuł>
<artysta>Percy Sledge</artysta>
<kraj>USA</kraj>
<firma>Atlantic</firma>
<cena>8.70</cena>
<rok>1987</rok>
</cd>
<cd>
<tytuł>Black angel</tytuł>
<artysta>Savage Rose</artysta>
<kraj>EU</kraj>
<firma>Mega</firma>
<cena>10.90</cena>
<rok>1995</rok>
</cd>
<cd>
<tytuł>1999 Grammy Nominees</tytuł>
<artysta>Many</artysta>
<kraj>USA</kraj>
<firma>Grammy</firma>
<cena>10.20</cena>
<rok>1999</rok>
</cd>
<cd>
<tytuł>For the good times</tytuł>
<artysta>Kenny Rogers</artysta>
<kraj>UK</kraj>
<firma>Mucik Master</firma>
<cena>8.70</cena>
<rok>1995</rok>
</cd>
<cd>
<tytuł>Big Willie style</tytuł>
<artysta>Will Smith</artysta>
<kraj>USA</kraj>
<firma>Columbia</firma>
<cena>9.90</cena>
<rok>1997</rok>
</cd>
<cd>
<tytuł>Tupelo Honey</tytuł>
<artysta>Van Morrison</artysta>
<kraj>UK</kraj>
<firma>Polydor</firma>
<cena>8.20</cena>
<rok>1971</rok>
</cd>
<cd>
<tytuł>Soulsville</tytuł>
<artysta>Jorn Hoel</artysta>
<kraj>Norway</kraj>
<firma>WEA</firma>
<cena>7.90</cena>
<rok>1996</rok>
</cd>
<cd>
<tytuł>The very best of</tytuł>
<artysta>Cat Stevens</artysta>
<kraj>UK</kraj>
<firma>Island</firma>
<cena>8.90</cena>
<rok>1990</rok>
</cd>
<cd>
<tytuł>Stop</tytuł>
<artysta>Sam Brown</artysta>
<kraj>UK</kraj>
<firma>A and M</firma>
<cena>8.90</cena>
<rok>1988</rok>
</cd>
<cd>
<tytuł>Bridge of Spies</tytuł>
<artysta>T`Pau</artysta>
<kraj>UK</kraj>
<firma>Siren</firma>
<cena>7.90</cena>
<rok>1987</rok>
</cd>
<cd>
<tytuł>Private Dancer</tytuł>
<artysta>Tina Turner</artysta>
<kraj>UK</kraj>
<firma>Capitol</firma>
<cena>8.90</cena>
<rok>1983</rok>
</cd>
<cd>
<tytuł>Midt om natten</tytuł>
<artysta>Kim Larsen</artysta>
<kraj>EU</kraj>
<firma>Medley</firma>
<cena>7.80</cena>
<rok>1983</rok>
</cd>
<cd>
<tytuł>Pavarotti Gala Concert</tytuł>
<artysta>Luciano Pavarotti</artysta>
<kraj>UK</kraj>
<firma>DECCA</firma>
<cena>9.90</cena>
<rok>1991</rok>
</cd>
<cd>
<tytuł>The dock of the bay</tytuł>
<artysta>Otis Redding</artysta>
<kraj>USA</kraj>
<firma>Atlantic</firma>
<cena>7.90</cena>
<rok>1987</rok>
</cd>
<cd>
<tytuł>Picture book</tytuł>
<artysta>Simply Red</artysta>
<kraj>EU</kraj>
<firma>Elektra</firma>
<cena>7.20</cena>
<rok>1985</rok>
</cd>
<cd>
<tytuł>Red</tytuł>
<artysta>The Communards</artysta>
<kraj>UK</kraj>
<firma>London</firma>
<cena>7.80</cena>
<rok>1987</rok>
</cd>
<cd>
<tytuł>Unchain my heart</tytuł>
<artysta>Joe Cocker</artysta>
<kraj>USA</kraj>
<firma>EMI</firma>
<cena>8.20</cena>
<rok>1987</rok>
</cd>
</katalog>

Tworzenie arkusza stylów XSL

 

Następnie należy utworzyć arkusz stylów XSL ("cdkatalog.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> Moja kolekcja CD </h2>
  <table border="1">
    <tr bgcolor="#9acd32">
      <th>Tytuł</th>
      <th>Artysta</th>
    </tr>
    <xsl:for-each select="katalog/cd">
    <tr>
      <td><xsl:value-of select="tytuł"/></td>
      <td><xsl:value-of select="artysta"/></td>
    </tr>
    </xsl:for-each>
  </table>
  </body>
  </html>
</xsl:template>

</xsl:stylesheet>

Włączenie arkusza stylów XSL do dokumentu XML

 

Dodaj odwołanie do arkusza stylów XSL w dokumencie XML ("cdkatalog.xml"):

 

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="/cdkatalog.xsl"?>
<katalog>
  <cd>
    <tytuł>Empire Burlesque</tytuł>
    <artysta>Bob Dylan</artysta>
    <kraj>USA</kraj>
    <firma>Columbia</firma>
    <cena>10.90</cena>
    <rok>1985</rok>
  </cd>
.
.
</katalog>

Jeżeli masz przeglądarkę zgodną z XSLT będzie ładnie przekształcać XML do XHTML.

 

Zobacz wynik

 

Moja kolekcja CD

 

 

Title Artist
Empire Burlesque Bob Dylan
Hide your heart Bonnie Tyler
Greatest Hits Dolly Parton
Still got the blues Gary Moore
Eros Eros Ramazzotti
One night only Bee Gees
Sylvias Mother Dr.Hook
Maggie May Rod Stewart
Romanza Andrea Bocelli
When a man loves a woman Percy Sledge
Black angel Savage Rose
1999 Grammy Nominees Many
For the good times Kenny Rogers
Big Willie style Will Smith
Tupelo Honey Van Morrison
Soulsville Jorn Hoel
The very best of Cat Stevens
Stop Sam Brown
Bridge of Spies T`Pau
Private Dancer Tina Turner
Midt om natten Kim Larsen
Pavarotti Gala Concert Luciano Pavarotti
The dock of the bay Otis Redding
Picture book Simply Red
Red The Communards
Unchain my heart Joe Cocker

 

Zobacz nasze wszystkie kursy

WWW


HTML
HTML - Znaczniki
CSS - Tutorial
CSS - Selektory
PHP
JavaScript

XML

XSLT

Bazy danych


SQL
SQLite
MySQL
PostgreSQL

 

 

Programowanie


C
C++
C#
Java
VisualBasic
Python

Linux


Podstawy Linuxa
Bash
Linuks artykuły

Windows


Excel funkcje
Windows wskazówki
Outlook

Pozotałe działy


Programy
Rozrywka

 

 

 

This email address is being protected from spambots. You need JavaScript enabled to view it.