Składnia i semantyka XSL Transformations
Ten artykuł od 2021-06 wymaga zweryfikowania podanych informacji. |
Ten artykuł opisuje składnię i semantykę XSLT – języka przekształceń dokumentów XML.
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>
Zobacz też edytuj
Linki zewnętrzne edytuj
- Specyfikacja XSLT 1.0.
- Specyfikacja XSLT 2.0.
- Dokumentacja elementów XSLT w polskim Mozilla Developer Center. [dostęp 2008-05-09]. [zarchiwizowane z tego adresu (2008-05-12)].