Składnia i semantyka XSL Transformations
Ten artykuł opisuje składnię i semantykę XSLT - języka przekształceń dokumentów XML.
Spis treści |
Elementy języka [edytuj]
Szablony ze wzorcem: xsl:template z atrybutem match [edytuj]
Szablony są podstawowym elementem języka. Stanowią reguły określające, w jaki sposób zamienić elementy źródłowego XML-a pasujące do wzorca match (będącego ścieżką XPath).
<xsl:template match="samochod[@rocznik < 1980]"> zabytek rocznik poniżej 1980: <xsl:apply-templates/> </xsl:template>
W szablonach często spotyka się polecenie xsl:apply-templates wstawiające w danym miejscu wynik przetwarzania elementów określonych parametrem select będącym ścieżką XPath (a jeśli go brak - dzieci aktualnego elementu).
Szablony nazwane: xsl:template z parametrem name [edytuj]
Szablony nazwane przypominają funkcje z innych języków programowania. Mogą być wywołane z dowolnego miejsca szablonu poleceniem xsl:call-template. Elementy xsl:param pozwalają na ich parametryzowanie.
Używając szablonów nazwanych można uzyskać efekt pętli (tak samo, jak w językach funkcyjnych). Poniższy szablon nazwany
<xsl:template name="petla"> <xsl:param name="i"/> <xsl:value-of select="$i"/> <xsl:if test="$i > 0"> <xsl:call-template name="petla"> <xsl:with-param name="i" select="$i - 1"/> </xsl:call-template> </xsl:if> </xsl:template>
wywołany przez
<xsl:call-template name="petla"> <xsl:with-param name="i" select="10"/> </xsl:call-template>
wyświetli liczby od 10 do 1.
Wstawianie wartości: xsl:value-of [edytuj]
xsl:value-of wstawia w danym miejscu zawartość elementu określonego przez atrybut select. W poniższym przykładzie wstawiona jest wartość atrybutu kolor aktualnego elementu.
kolor: <xsl:value-of select="@kolor">
XSLT umożliwia również wygodne wstawianie wartości wewnątrz znaczników, przy użyciu nawiasów klamrowych:
<span style="color: {@kolor}">kolor</span>