XML/XSLT teooria
XML - Extensible Markup Language
- XML-fail algab deklaratsiooniga:
<?xml version="1.0" encoding="utf-8"?> - XML-failil on täpselt üks juurelement.
- API-d kasutavad andmevahetuseks XML-faile.
- RSS-uudised hoitakse XML-ina.
- KML-kaardid põhinevad XML-il.
- XML-i kasutatakse süsteemidevahelisel andmevahetusel.
XSLT - Extensible Stylesheet Language Transformations
- XML -> XSLT -> HTML
- XML -> XSLT -> tekst
- XML -> XSLT -> teine XML
- XSLT kasutab andmete valimiseks XPathi.
- Brauser oskab XSLT-d ise rakendada (
<?xml-stylesheet type="text/xsl" href="..."?>). - Serveris teeb teisenduse C# klass
XslCompiledTransform.
XSLT elemendid
| Element | Kirjeldus | Näide |
|---|---|---|
xsl:template |
Mall, mis kirjeldab, mida teha sobiva elemendiga | <xsl:template match="/"> |
xsl:apply-templates |
Rakendab malle valitud elementidele | <xsl:apply-templates select="lapsed/inimene"/> |
xsl:value-of |
Väljastab elemendi või avaldise väärtuse | <xsl:value-of select="nimi"/> |
xsl:for-each |
Tsükkel üle valitud elementide | <xsl:for-each select="//inimene"> |
xsl:if |
Tingimuslause (ilma else-osata) | <xsl:if test="@synd > 1980"> |
xsl:choose / xsl:when / xsl:otherwise |
Mitme haruga tingimuslause (if / else if / else) | <xsl:when test="@synd"> |
xsl:sort |
Sorteerib for-each või apply-templates tulemuse | <xsl:sort select="@synd" order="descending"/> |
xsl:param |
Parameeter, mille väärtuse saab anda väljastpoolt (nt C# koodist) | <xsl:param name="otsing">ll</xsl:param> |
xsl:variable |
Muutuja (väärtust muuta ei saa) | <xsl:variable name="pikkus" select="string-length($otsing)"/> |
xsl:attribute |
Lisab väljundelemendile atribuudi | <xsl:attribute name="class">punane</xsl:attribute> |
XSLT funktsioonid
| Funktsioon | Kirjeldus | Näide | Tulemus |
|---|---|---|---|
count() |
Loeb elementide arvu | count(lapsed/inimene) |
laste arv |
sum() |
Liidab elementide väärtused | sum(//toode/hind) |
kõikide hindade summa |
substring() |
Võtab stringist osa (algus, pikkus) | substring('Charles', 1, 1)substring('Charles', 1, 3) |
C Cha |
string-length() |
Tagastab stringi pikkuse | string-length('William') |
7 |
concat() |
Liidab stringid kokku | concat('Anne', ' : ', 4) |
Anne : 4 |
starts-with() |
true, kui string algab antud väärtusega | starts-with('Charles', 'C') |
true |
contains() |
true, kui string sisaldab antud väärtust | contains('William', 'll') |
true |
position() |
Tagastab elemendi järjekorranumbri | //inimene[position() = 1] |
esimene inimene |
last() |
Tagastab viimase elemendi positsiooni | //inimene[last()] |
viimane inimene |
not() |
Pöörab tõeväärtuse ümber | not(true()) |
false |
true(), false() |
Tagastavad tõeväärtuse true või false | true() |
true |
normalize-space() |
Eemaldab tühikud algusest ja lõpust ning asendab mitu tühikut üheks | normalize-space(' prints Harry ') |
prints Harry |
translate() |
Asendab stringis tähed: translate(tekst, algsümbolid, asendussümbolid) | translate('kass', 'ss', 'tt') |
katt |