XSLT
Børre Stenseth

Transformasjoner på klienten

Hva

I denne modulen skal vi laste opp en XML-fil, som DOM og som text. Videre skal vi laste opp to transformasjoner. Så skal vi la brukeren bestille transformasjon og utføre denne bestillingen, transformasjonen, på klienten.

xsl4
Transformasjon på klienten

Vi skal bruke den samme boklista som den vi brukte i Basis : bokliste.xml

Koden blir ganske komplisert fordi IE ikke køser problemet på samme måte som de fleste andre nettlesere. Situasjonen blir ikke bedre ved at noen løsninger kommer (IE7) og forsvinner igjen (IE9). Det er all grunn til sjekke status.

Her rapporterer vi hva vi har lastet opp når siden lastes:

Loaded:

De enkelte komponentene vi laster og som er tilgjengelig for senere valg:

_loader.js

En av to

I det første eksempelet lar vi brukeren foreta en av to enkle transformasjoner som produserer et HTML-fragment med en div som inneholder enten en liste av boktitler eller en tabell med alle bøkene:

_tolisteSelect.xslt

eller

_totableSelect.xslt

Merk at begge transformasjonene er laget slik at de har en "wildcard" parameter * som fører til at vi velger alle bøkene.

<xsl:param name="category" select="'*'"/>
...
<xsl:apply-templates 
  select="booklist/book[category=$category or $category='*']"/>

Javascriptkoden som drar transfomasjonen er slik:

_transform uten parametere

Parametere

I det andre eksempelet lar vi brukeren foreta en liste-transformasjon med bokkategori som parameter.

Javascriptkoden som drar transfomasjonen med parameter er slik:

_transform med parametere

Kategori: