CXX. XSL

Introduction

Avertissement

Ce module est EXPERIMENTAL. Cela signifie que le comportement de ces fonctions, leurs noms et concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS! Soyez-en conscient, et utilisez ce module à vos risques et périls.

L'extension XSL implémente le standard XSL, et fait des transformations XSLT à l'aide de la librairie libxslt.

Installation

PHP 5 inclut l'extension XSL par défaut, et elle peut être activée en ajoutant l'option à votre ligne de commande, lors de la compilation de PHP. DIR est le dossier d'installation de libxslt.

Exemples

Dans cet exemple d'introduction, nous allons apprendre comment transformer un document XML en un document HTML.

Exemple 1. Un arbre XSL simple

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 <xsl:output method="html" encoding="iso-8859-1" indent="no"/>
 <xsl:template match="collection">
  Hey! Bienvenue dans ma collection de CD !
  <xsl:apply-templates/>
 </xsl:template>
 <xsl:template match="cd">
  <h1><xsl:value-of select="titre"/></h1>
  <h2>par <xsl:value-of select="artiste"/></h2>
  <h3> - <xsl:value-of select="annee"/></h3>
 </xsl:template>
</xsl:stylesheet>

Exemple 2. L'arbre XML correspondant

<collection>
 <cd>
  <titre>PHP Rock</titre>
  <artiste>Joe Coder</artiste>
  <annee>2003</annee>
 </cd>
 <cd>
  <titre>Squashing Typos on a Winter's Eve</titre>
  <artiste>kennyt</artiste>
  <annee>2004</annee>
 </cd>
</collection>

Exemple 3. Transformation de XML en HTML

Le code PHP suivant utilise les extensions XML et XSL pour transformer le code XML en du code HTML présentable.

<?php
/* Chargement des sources XML */
$xml = new DomDocument; // dans /ext/dom
$xml->load('exemple.xml');

$xsl = new DomDocument;
$xsl->load('exemple.xsl');

/* Configuration du transformateur */
$proc = new xsltprocessor;
$proc->importStyleSheet($xsl); // Importation des règles XSL
echo $proc->transformToXML($xml); // Transformation
?>

Cela doit produire le code HTML suivant :

Hey! Bienvenue dans ma collection de CD !

<h1>PHP Rock</h1>
<h2>par Joe Coder</h2>
<h3> - 2003</h3>

<h1>Squashing Typos on a Winter's Eve</h1>
<h2> par kennyt</h2>
<h3> - 2004</h3>