b'\n_START_ARTICLE_\nXSL Transformations\n_START_SECTION_\nOm\xc3\xb3wienie\n_START_PARAGRAPH_\nXSLT przypomina j\xc4\x99zyki funkcyjne - arkusze XSLT zbudowane s\xc4\x85 z regu\xc5\x82 opisuj\xc4\x85cych, w jaki spos\xc3\xb3b zamieni\xc4\x87 poszczeg\xc3\xb3lne elementy wej\xc5\x9bciowego XML. Warsztat programisty XSLT obejmuje m.in. instrukcje steruj\xc4\x85ce, mo\xc5\xbcliwo\xc5\x9b\xc4\x87 definicji w\xc5\x82asnych funkcji (tzw. szablon\xc3\xb3w nazwanych), funkcje wbudowane realizuj\xc4\x85ce na przyk\xc5\x82ad sortowanie. Do znajdowania i wskazywania element\xc3\xb3w \xc5\xbar\xc3\xb3d\xc5\x82owego XML u\xc5\xbcywany jest XPath.\n_START_SECTION_\nZastosowanie w tworzeniu stron WWW\n_START_PARAGRAPH_\nXSLT jest szeroko stosowany przy tworzeniu stron WWW. Pozwala na oddzielenie warstwy informacji od warstwy prezentacji, kt\xc3\xb3re w HTML-u s\xc4\x85 mocno pomieszane. Procesory XSLT wbudowane s\xc4\x85 w nowoczesne przegl\xc4\x85darki WWW.\n_START_SECTION_\nPrzyk\xc5\x82ad\n_START_PARAGRAPH_\nZa\xc5\x82\xc3\xb3\xc5\xbcmy, \xc5\xbce mamy do przedstawienia jak\xc4\x85\xc5\x9b ksi\xc4\x85\xc5\xbck\xc4\x99. Mo\xc5\xbcemy informacje o niej zapisa\xc4\x87 w formacie XML:_NEWLINE_<?xml version="1.0" encoding="UTF-8"?><Ksi\xc4\x85\xc5\xbcka>_NEWLINE_  <id>_NEWLINE_    <Tytu\xc5\x82>Pobawmy si\xc4\x99 w webmaster\xc3\xb3w</Tytu\xc5\x82>_NEWLINE_    <isbn>123456789</isbn>_NEWLINE_    <Autor>Jeszcze nieznany</Autor>_NEWLINE_  </id>_NEWLINE_  <SpisTre\xc5\x9bci>_NEWLINE_    <R>Rozdzia\xc5\x82 1</R>_NEWLINE_    <R>Rozdzia\xc5\x82 2</R>_NEWLINE_    <R>Rozdzia\xc5\x82 3</R>_NEWLINE_  </SpisTre\xc5\x9bci></Ksi\xc4\x85\xc5\xbcka>_NEWLINE_Powy\xc5\xbcej zawarte s\xc4\x85 wszystkie informacje, jakie posiadamy o tej ksi\xc4\x85\xc5\xbcce. Jednak aby wy\xc5\x9bwietli\xc4\x87 j\xc4\x85 w przegl\xc4\x85darce potrzebne s\xc4\x85 jeszcze instrukcje, jak to zrobi\xc4\x87. Do tego s\xc5\x82u\xc5\xbcy dokument XSLT:_NEWLINE_<?xml version="1.0" encoding="UTF-8" ?><xsl:stylesheet version="1.0"_NEWLINE_  xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/1999/xhtml">_NEWLINE__NEWLINE_  <xsl:output method="xml" indent="yes"_NEWLINE_    doctype-public="-//W3C//DTD XHTML 1.1//EN"_NEWLINE_    doctype-system="http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"/>_NEWLINE_    _NEWLINE_  <xsl:template match="Ksi\xc4\x85\xc5\xbcka">_NEWLINE_    <html>_NEWLINE_      <head> <title>Ksi\xc4\x85\xc5\xbcka ,,<xsl:value-of select="./id/Tytu\xc5\x82"/>\'\'</title> </head>_NEWLINE_      <body>_NEWLINE_         <xsl:apply-templates/>_NEWLINE_      </body>_NEWLINE_    </html>_NEWLINE_  </xsl:template>_NEWLINE__NEWLINE_  <xsl:template match="id">_NEWLINE_    <h3>Dane identyfikacyjne ksi\xc4\x85\xc5\xbcki</h3>_NEWLINE_    Tytu\xc5\x82: <xsl:value-of select="Tytu\xc5\x82"/><br />_NEWLINE_    ISBN: <xsl:value-of select="isbn"/><br />_NEWLINE_    Autor: <xsl:value-of select="Autor"/><br />_NEWLINE_  </xsl:template>_NEWLINE__NEWLINE_  <xsl:template match="SpisTre\xc5\x9bci">_NEWLINE_    <h3>Spis tre\xc5\x9bci</h3>_NEWLINE_    <table>_NEWLINE_      <xsl:apply-templates/>_NEWLINE_    </table>_NEWLINE_  </xsl:template>_NEWLINE__NEWLINE_  <xsl:template match="R">_NEWLINE_    <tr><td><xsl:value-of select="."/></td></tr>_NEWLINE_  </xsl:template></xsl:stylesheet>_NEWLINE_Aby transformacja zadzia\xc5\x82a\xc5\x82a, zak\xc5\x82adaj\xc4\x85c, \xc5\xbce szablon znajduje si\xc4\x99 w pliku ksi\xc4\x85\xc5\xbcka.xsl, w dokumencie XML dodajemy linijk\xc4\x99_NEWLINE__NEWLINE_<?xml version="1.0" encoding="UTF-8"?>_NEWLINE_<?xml-stylesheet type="text/xsl" href="ksi\xc4\x85\xc5\xbcka.xsl"?>_NEWLINE_<Ksi\xc4\x85\xc5\xbcka>_NEWLINE_..._NEWLINE_</Ksi\xc4\x85\xc5\xbcka>'