• Nie Znaleziono Wyników

Definiowanie wzorców XSL – sterowanie transformacją

N/A
N/A
Protected

Academic year: 2021

Share "Definiowanie wzorców XSL – sterowanie transformacją"

Copied!
3
0
0

Pełen tekst

(1)

XML – materiały dydaktyczne - Kurs Podstawowy

XSL – sterowanie transformacją

Grzegorz Stanio WSISIZ 2003-2007

Definiowanie wzorców

W kaŜdym pliku XSL moŜemy definiować szablony dla róŜnych elementów.

Szablony z atrybutem match:

<xsl:template match="/">

...

</xsl:template>

[szablon dla elementu root - naleŜy pamiętać aby w kaŜdym pliku XSL umieścić szablon obejmujący całe drzewo XML]

]

<xsl:template match="zestawienie/pozycja">

...

</xsl:template>

[szablon dla elementu pozycja zawartego wewnątrz znacznika zestawienie]

Wywoływanie tak zdefiniowanych szablonów:

<xsl:apply-templates select="zestawenie/pozycja"/>

[szablon zostanie zastosowany do elementów pozycja]

<xsl:apply-templates select="zestawenie/pozycja[@id='polskie']"/>

[szablon zostanie zastosowany dla elementów pozycja posiadających atrybut id równy

‘polskie']

<xsl:apply-templates select="zestawenie/pozycja[2]"/>

[szablon zostanie zastosowany dla drugiego wystąpienia elementu pozycja]

Szablony z atrybutem name:

<xsl:template name="pozycja">

...

</xsl:template>

[szablon o nazwie "pozycja"]

<xsl:call-template name="pozycja"/>

[call-template nie zmienia pozycji w drzewie XML]

(2)

XML – materiały dydaktyczne - Kurs Podstawowy

XSL – sterowanie transformacją

Grzegorz Stanio WSISIZ 2003-2007

Sortowanie

<xsl:sort select="pozycja/numer"/>

[jako wartość atrybutu "select" podajemy wzorzec wg którego mają zostać posortowane wyniki]

<xsl:sort select="pozycja/numer" data-type="number"/>

[atrybut data-type wskazuje na format wartości wg której następuje sortowanie – moŜliwe opcje "number" oraz "text"]

<xsl:for-each select="zestawienie/pozycja[@id='polskie']">

<xsl:sort select="numer" data-type="number"/>

...

</xsl:for-each>

[jeŜeli sortowania chcemy uŜyć w pętli for-each, element sort naleŜy umieścić w pierwszej linii kodu wewnątrz pętli]

Tworzenie węzłów w dokumencie wyjściowym

<xsl:element name="a">

<xsl:attribute name="href">

zdjecie.jpg

</xsl:attribute>

</xsl:element>

[zapis tem tworzy element "a" z atrybutem "href" równym "zdjecie.jpg"]

<xsl:element name="a">

<xsl:attribute name="href">

<xsl:value-of select="pozycja/zdjecie"/>

</xsl:attribute>

</xsl:element>

[element "a" z atrybutem "href" równym wartości elementu "zdjecie" zawartego w elemencie "pozycja"]

(3)

XML – materiały dydaktyczne - Kurs Podstawowy

XSL – sterowanie transformacją

Grzegorz Stanio WSISIZ 2003-2007

Numerowanie

<xsl:number/>

[numerowanie kolejnych węzłów – numery przypisane przed transformacją]

<xsl:number format="I"/>

[atrybut "format" decyduje o formacie liczb uŜytych w procesie numerowania – tu liczby rzymskie]

<xsl:value-of select="position()"/>

[numerowanie elementów w dokumencie wyjściowym (np. po zastosowaniu sortowania)]

Funkcje (wybór)

contains(łańcuch, wzorzec) Sprawdza czy dany łańcuch zawiera określony wzorzec concat(string, string ...) Łączy podane łańcuchy

string-length(string) Zwraca długość podanego łańcucha

round(liczba) Zaokrągla liczbę do najbliŜszej wartości całkowitej sum(elementy) Sumuje wartości zawarte w podanych elementach

count(element) Zwraca ilość wystąpień danego elementu

position() Zwraca pozycję elementu

current() Zwraca wartość aktualnego elementu

Operatory (wybór)

Operatory porównania oraz logiczne:

= != > >= &lt; &lt;= and or not

Operatory matematyczne:

dodawanie: + Odejmowanie: - mnoŜenie: * dzielenie: div

Cytaty

Powiązane dokumenty

If more professional help and care were provided by the government or private institutions, more people would have a chance to abandon their enslavement to alcohol and come back

She’s got a round face, long brown curly hair and a small nose.. Her eyes

In conclusion, Hanraha’s is the place where I felt really comfortable and that’s why I recommend it as a place for families as well as an alternative lunch venue for business people

Will make that moment live Give me what you alone can give A kiss to build a dream on.. Gimme a kiss to build a dream on And

Frank isn’t having (not/have) a nice time in Chicago.. Mary isn’t dancing (not/dance) with

► Włącz przetwarzanie pozostałych elementów (w przypadku braku definicji elementu, użyte będzie standardowe przetwarzanie – jak możesz się przekonać, polega ono na

-stwórz wzorzec dla elementu „procesor” i w nim zawrzyj obsługę elementów typ, cena i link w taki sposób aby wyświetlane były one zawsze w tej samej kolejności (typ , potem cena

 Jakie założenia przyjmuje model danych XPath 2.0 i jakie jego właściwości wykraczają poza model XML Information Set..  Omów system typów XPath 2.0 i jego zmiany w stosunku