PHP: Šablonovací systém XSLT(2) - Zjednodušená šablona XSLT

PHP Práce se soubory PHP: Šablonovací systém XSLT(2) - Zjednodušená šablona XSLT

Zjednodušený styl XSLT

V minulém dílu jsem uvedl velmi jednoduchou šablonu XSLT. I tak jednoduchou šablonu je však možné ještě víc zjednodušit. Něco za něco. Ve zjednodušené šabloně je možné používat jen velmi omezenou sadu příkazů XSLT. Pro běžné použití nám však na čtečku RSS vystačí i tato omezená sada:

<?xml version="1.0"?>

<html xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xsl:version='1.0'>
<head>
<meta http-equiv="refresh" content="300"/>
<title><xsl:value-of select="/rss/channel/title"/></title>
</head>
<body>
<h1><xsl:value-of select="/rss/channel/title"/></h1>
<p><a target="_blank">
        <xsl:attribute name="href"><xsl:value-of select="/rss/channel/link"/></xsl:attribute>
        <xsl:attribute name="title"><xsl:value-of select="/rss/channel/title"/></xsl:attribute>
        <xsl:value-of select="/rss/channel/link"/>
</a></p>
<ul>
<xsl:for-each select="/rss/channel/item">
        <li><a target="_blank">
                <xsl:attribute name="href"><xsl:value-of select="link"/></xsl:attribute>
                <xsl:value-of select="title"/>
        </a>
        <p><xsl:value-of select="description" disable-output-escaping="yes"/></p>
        </li>
</xsl:for-each>
</ul>
</body>
</html>

Jak vidíte, tato zjednodušená šablona se již dost podobá šablonám běžných šablonovacích systémů. Stále si však zachovává svou základní vlastnost: Pokud neobsahuje validní kód XML, bude při spuštění vypisovat chyby. Tato vlastnost je výhodná při ladění šablony - snižuje pravděpodobnost nevalidního výstupu HTML.

Zjednodušené šablony by se však měly používat spíš výjimečně. Pokud byste pomocí takové šablony chtěli prezentovat nějaký portál, u kterého každá podstránka vypadá trochu jinak (index, článek, novinky, fórum), museli byste asi mít takových šablon víc. A to by bylo nepraktické. Pro portály typu devbook je výhodnější vytvořit standardní šablonu, která se automaticky přizpůsobí struktuře vstupních dat.


 

  Aktivity (2)

Článek pro vás napsal Kit
Avatar
Jsem spokojeným uživatelem operačních systémů založených na linuxovém jádře. Zejména openSUSE a Ubuntu. Pro psaní veškerých textů a programů používám vynikající textový editor Vim. Aplikace se snažím psát vždy v tom nejvhodnějším programovacím jazyk...

Jak se ti líbí článek?
Ještě nikdo nehodnotil, buď první!


 



 

 

Komentáře

Avatar
Drahomír Hanák
Tým ITnetwork
Avatar
Drahomír Hanák:

Pěkný článek. Chtěl bych se jenom zeptat, jak je to s escapováním výstupu. Když chci například vypisovat něco do JavaScriptu, atributu nebo jen tak. To escapování je automatické?

 
Odpovědět 25.8.2012 14:50
Avatar
Kit
Redaktor
Avatar
Odpovídá na Drahomír Hanák
Kit:

Escapování výstupu v XSLT je do značné míry automatické, ale někdy je potřeba mu trochu pomoct malou nápovědou. S Javascriptem je drobná potíž se znaky <, & a ' protože je nelze do XML zapsat přímo, ale jen jako entity. Pokud by toho bylo víc, uzavřeš celý javascriptový kód do bloku CDATA.

Generování do atributu viz xsl:attribute.

Také se pomocí XSLT dají vyfiltrovat povolené značky a atributy HTML.

Odpovědět 25.8.2012 18:35
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 2 zpráv z 2.