Primena šablona preko reda

XSLT procesor obično čita ulazni XML dokument od početka ka kraju i šabloni se aktiviraju onim redom kako procesor nailazi na određene elemente. To, pre svega, znači da će se šablon za element-roditelj aktivirati pre šablona za element-dete. Međutim, šabloni mogu da promene redosled obilaska ulaznog dokumenta, to jest, mogu da specifikuju koji će se element sledeći obraditi. Osim toga, oni mogu da spreče obradu nekih elemenata.

XSLT element <xsl:apply-templates> omogućava da se eksplicitno naznači redosled obrade elemenata. Njegov atribut select, čija je vrednost XPath izraz, govori XSLT procesoru koje čvorove iz ulaznog drveta treba u određenom trenutku da obradi i prepiše u izlazni dokument.

Na primer, ako bismo želeli da iz ulaznog dokumenta izvučemo imena svih članova porodice ali tako da prvo dođe prezime, a zatim ime člana porodice, potreban je šablon:

  <xsl:tempate match="ime">
    <xsl:value-of select="prezime"/>,
    <xsl:value-of select="lično-ime"/>
  </xsl:template>

Ovaj šablon nije dovoljan, jer bi primena ovog šablona u stilskom listu dovela do toga da se u izlazni dokument ispišu, uz imena, i profesije i hobi. Treba nam, dakle, i šablon za element član koji će reći da se primenjuju šabloni samo na element ime, a da se šabloni za elemente zanimanje i hobi ne primenjuju.

<xsl:tempate match="član">
  <xsl:apply-templates select="ime"/>
</xsl:template>

Stilski list koji koristi ove šablone bio bi:

Redosled šablona u stilskom listu nije od značaja - bitan je samo redosled elemenata u ulaznom dokumentu. Kada se ovaj stilski list primeni na polazni dokument dobija se:


Dokument:
URL:
Autor: Cvetana Krstev
Poslednja izmena: