Cette classe permet d' appliquer une feuille de style XSLT à un document XML.
La transformation peut être effectuée de différentes manières : soit en utilisant les extensions que PHP fournit : php-XSLT ou php-DOMXML-XSLT,
soit en ligne de commande avec SABLOTRON, XALAN ou XSLTPROC. L' implementation de ces processeurs n' étant pas forcement la meme,
certains exemples peuvent poser problème selon votre version de SABLOTRON ou de XALAN, notemment les exemples 3 et 4
qui utilisent des espaces de noms apparemment pas encore supportés sur mes versions de TEST (SABLOTRON 0.98).
-
Nouvelle Instance
XSLT( [ string Extension ] )Nouvelle Instance de la Classe. Initialise les variables membres de la classe et permet optionnellement de choisir l' extension de PHP à utiliser.
Si aucune extension n' est spécifiée, il faudra effectuer la transformation en ligne de commande.
- : Spécifie l' extension à utilisé. Possibilité :: xslt ou domxml.
$xml = new XSLT;
$xml = new XSLT('xslt');
$xml = new XSLT('domxml');
-
Charger un fichier XML à partir d' un fichier
Load_XML_from_file( string File )Charge un document XML à partir d' un fichier.
Cette methode utilise file_get_contents() , disponible en PHP >= 4.3 .
- : Le fichier XML à charger.
$xml -> Load_XML_from_file( 'http://cool.net/fichier.xml' );
-
Charger un fichier XML à partir d' une chaine
Load_XML_from_str( string Str )Charge un document XML à partir d' une chainee.
- : Le fichier XML à charger.
$xml -> Load_XML_from_str( ' votre chaine ' );
-
Charger la template XSLT à partir d' un fichier
Load_XSL_from_file( string File )Charge une template XSLT à partir d' un fichier.
Cette methode utilise file_get_contents() , disponible en PHP >= 4.3 .
- : La template XSLT à charger.
$xml -> Load_XSL_from_file( 'http://cool.net/fichier.xsl' );
-
Charger la template XSLT à partir d' une chaine
Load_XSL_from_str( string Str )Charge une template XSLT à partir d' une chaine.
- : La template XSLT à charger.
$xml -> Load_XSL_from_str( 'votre chaine' );
-
Définir l' encodage
Set_encoding( string Encoding )Fixe l' encodage de sortie. Ne fonctionne qu' avec l' extension XSLT.
$xml -> Set_encoding( 'ISO-8859-2' );
$xml -> Set_encoding( 'UTF-8' );
-
Passer un parametre à la template XSLT
Add_XSL_parameter( string Name , string Value )Ajoute un parametre qui sera passé a la template XSLT.
Recuperez ce parametre dans le top-level de la feuille de style avec un : <xsl:param name="Name"/>
- : Le nom du parametre.
- : La valeur du parametre.
$xml -> Add_parameter( 'limit', 10 );
-
Affichage du résultat
Output( )Retourne le résultat de la transformation.
-
Transformation avec XSLTPROC en ligne de commande
XSLTPROC_shell_transform( string XSLfile , string XMLfile [, array Params ] )Effectue une transformation en ligne de commande avec le processeur XSLTPROC.
Pensez à configurer l' URL vers votre processeur dans les variables membres de la classe ,
la valeur par defaut est /usr/bin/xsltproc .
- : L' URL vers le fichier XSL.
- : L' URL vers le fichier XML.
- : Optionnel. Array contenant les parametres à passer à la template.
echo $xml -> XSLTPROC_shell_transform( 'fichier.xsl' , 'fichier.xml' );
echo $xml -> XSLTPROC_shell_transform( 'fichier.xsl' , 'fichier.xml' , array('name' => 'value') );
-
Transformation avec SABLOTRON en ligne de commande
SABLOTRON_shell_transform( string XSLfile , string XMLfile [, array Params ] )Effectue une transformation en ligne de commande avec le processeur SABLOTRON.
Pensez à configurer l' URL vers votre processeur dans les variables membres de la classe ,
la valeur par defaut est /usr/bin/sabcmd .
- : L' URL vers le fichier XSL.
- : L' URL vers le fichier XML.
- : Optionnel. Array contenant les parametres à passer à la template.
echo $xml -> SABLOTRON_shell_transform( 'fichier.xsl' , 'fichier.xml' );
echo $xml -> SABLOTRON_shell_transform( 'fichier.xsl' , 'fichier.xml' , array('name' => 'value') );
-
Transformation avec XALAN en ligne de commande
XALAN_shell_transform( string XSLfile , string XMLfile [, array Params ] )Effectue une transformation en ligne de commande avec le processeur XSLTPROC.
Pensez à configurer l' URL vers votre processeur dans les variables membres de la classe ,
la valeur par defaut est /usr/bin/testXSLT .
J' ai utilisé la version xalan-c pour les tests, sachez qu' il existe une version JAVA xalan-j
- : L' URL vers le fichier XSL.
- : L' URL vers le fichier XML.
- : Optionnel. Array contenant les parametres à passer à la template.
echo $xml -> XALAN_shell_transform( 'fichier.xsl' , 'fichier.xml' );
echo $xml -> XALAN_shell_transform( 'fichier.xsl' , 'fichier.xml' , array('name' => 'value') );