[PHP] Effettuare dinamicamente trasformazioni XSL a file XML
Breve post per illustrare come usare le funzioni XSL in PHP5. L'architettura di riferimento è LAMP (con Ubuntu come distro) per cui tutto è già automagicamente disponibile, poichè l'estensione XSL è già inclusa in PHP5.
Sia dato il seguente file, collection.xml:
e il suo foglio di stile, collection.xsl, deputato al parsing del documento XML per la generazione del codice HTML:
<collection>
<cd>
<title>Fight for your mind</title>
<artist>Ben Harper</artist>
<year>1995</year>
</cd>
<cd>
<title>Electric Ladyland</title>
<artist>Jimi Hendrix</artist>
<year>1997</year>
</cd>
</collection>
Vediamo il codice PHP che ci serve per effettuare dinamicamente la trasformazione:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:param name="owner" select="'Nicolas Eliaszewicz'"/>
<xsl:output method="html" encoding="iso-8859-1" indent="no"/>
<xsl:template match="collection">
Hey! Welcome to <xsl:value-of select="$owner"/>'s sweet CD collection!
<xsl:apply-templates/>
</xsl:template>
<xsl:template match="cd">
<h1><xsl:value-of select="title"/></h1>
<h2>by <xsl:value-of select="artist"/> - <xsl:value-of select="year"/></h2>
; <hr />
</xsl:template>
</xsl:stylesheet>
Il risultato dovrebbe essere simile al seguente:
$doc = new DOMDocument();
$xsl = new XSLTProcessor();
$doc->load('collection.xsl');
$xsl->importStyleSheet($doc);
$doc->load('collection.xml');
echo $xsl->transformToXML($doc);
Iscriviti a:
Commenti sul post (Atom)
0 comments:
Posta un commento