2010-10-06 22 views
12

Est-il possible/facile de mettre à niveau la bibliothèque de PHP pour utiliser XSLT 2.0?Mise à niveau du processeur PHP XSLT vers XSLT 2.0

mis en place actuelle:

xsl 
XSL  enabled 
libxslt Version  1.1.24 
libxslt compiled against libxml Version  2.6.32 
EXSLT enabled 
libexslt Version 1.1.24 
+0

Quel système d'exploitation utilisez-vous? – Dave

+1

@Louis W: Je pense qu'il n'y a pas de processeur PHP XSLT 2.0 "natif". Mais il existe des processeurs XSLT 2.0 pour de nombreuses plateformes, et je pense qu'il existe un moyen pour le script PHP de se connecter avec d'autres processus serveur. –

+0

Exécution d'apache2. –

Répondre

12

Le projet Saxon-C fournit une API PHP pour sa mise en œuvre XSLT 2.0.

Voici le processus d'installation de base:

S'il vous plaît avoir les paquets suivants sur votre machine pour construire l'extension PHP Saxon/C: faire, php-devel, (php5-dev/php55-dev/php55w -devel), apache2 ou httpd, gcc-C++ ou g ++, gcj (ou tout simplement pour lier le fichier jni.h)

Exécuter les commandes:

phpize 
./configure --enable-saxon 
make 
sudo make install 

Mettez à jour le fichier php.ini (si vous utilisez Ubuntu, il est généralement à l'emplacement '/ etc/php5/apache2 /') pour contenir l'extension php. Insérer le texte suivant dans la section Extensions dynamiques: extension = saxon.so

Exécutez la commande:

sudo service apache2 restart 

code Exemple:

<?php 
/* simple example to show transforming to string */ 
function exampleSimple1($proc, $xmlfile, $xslFile){ 
    $proc->setSourceFile($xmlfile); 
    $proc->setStylesheetFile($xslFile); 

    $result = $proc->transformToString();    
if($result != null) {    
echo '<b/>exampleSimple1:</b/><br/>';  
echo 'Output:'.$result; 
} else { 
    echo "Result is null"; 
} 
$proc->clearParameters(); 
$proc->clearProperties();    
} 


$foo_xml = "xml/foo.xml"; 
$foo_xsl = "xsl/foo.xsl"; 

$proc = new SaxonProcessor(); 

//On Windows we recommend setting the cwd using the overloaded constructor 
//because there remains an issue with building Saxon/C with PHP when using the function VCWD_GETCWD. i.e. $proc = new SaxonProcessor('C://www/html//trax//'); 

$version = $proc->version(); 
echo 'Saxon Processor version: '.$version; 
echo '<br/>';   
exampleSimple1($proc, $foo_xml, $foo_xsl); 
?> 

Les bibliothèques libxslt2 et libexslt, qui sont limitées à XSLT 1.0, XPath 1.0 et le support EXSLT, sont utilisés pour fournir le processeur XSLT par défaut pour PHP. Le projet XML_XSLT2Processor est destiné à fournir un chemin de mise à niveau.

Voici le processus d'installation de base:

Suivez les instructions fournies sur le site du processeur que vous souhaitez utiliser pour obtenir des instructions sur la façon d'installer ce processeur XSLT. Fondamentalement, vous devrez extraire le binaire du processeur dans un répertoire. Une fois le processeur configuré, vous pouvez télécharger XML_XSLT2Processor. Utilisation du programme d'installation PEAR

Si vous ne possédez pas déjà le programme d'installation PEAR, consultez les instructions d'installation sur le site PEAR (sous Windows, vous démarrez le fichier go-pear.bat dans le dossier de PHP, et dans le cas typique, cliquez sur "Entrer") et installez le programme d'installation de PEAR, le "gestionnaire de paquets PEAR".

Une fois que vous avez l'installeur PEAR, vous pouvez installer XML_XSLT2Processor de celui-ci, en tapant simplement le chemin d'installation poire/vers/le/tgz/arhive mais remplacer le chemin bien sûr. Par exemple, si la version 0.5.3 était dans le même dossier que le dossier PHP, vous pouvez l'installer avec la commande pear install XML_XSLT2Processor_v0_5_3.tgz

Installation manuelle

Si vous n'êtes pas avoir (accès à) l'installateur PEAR, vous pouvez toujours installer XML_XSLT2Processor en extrayant le contenu de l'archive dans n'importe quel répertoire.Cependant, il est recommandé que ce répertoire figure parmi les chemins de votre include_path, que vous pouvez spécifier dans php.ini. Pour émuler plus étroitement le programme d'installation PEAR, vous pouvez également renommer le répertoire "XSLT2Processor-verion" en "XML".

Utilisation

Une fois que tous ce qui précède est fait, vous pouvez créer un nouveau fichier PHP et inclure XML_XSLT2Processor en elle. Si vous avez utilisé le programme d'installation de PEAR, « XSLT2Processor.php » devrait être disponible à partir du dossier « XML », ainsi:

<?php 
include "XML/XSLT2Processor.php"; 
//The rest of the code 
?> 

Vous aurez besoin d'inclure la ligne dans le fichier PHP qui sera utiliser la classe et cela devrait se produire avant d'utiliser l'une des fonctions de cette classe. Le reste de la documentation vous montrera comment construire la classe XML_XSLT2Processor, expliquera le prototype de chaque fonction et donnera quelques exemples.

Notez que si vous avez travaillé avec l'extension PHP XSL avant d'utiliser celle-ci, la seule chose que vous devez vraiment savoir est la fonction XML_XSLT2Processor :: __ construct(). Le reste est compatible avec, bien qu'il y ait quelques nouvelles fonctionnalités disponibles seulement ici. Sachez que les fonctions registerPHPFunctions() et setProfiling() ne sont pas disponibles en raison de l'architecture de la classe (n'étant pas une extension PECL et tout ...).

Références

+0

Merci pour les liens. – DanMan