xslt_set_scheme_handlers
(PHP 4 >= 4.0.6)
xslt_set_scheme_handlers — Configure un gestionnaire de Scheme pour un processeur XSLT
Description
$xh
, array $handlers
)Configure le gestionnaire de scheme (gestionnaire XPath) pour le document.
Liste de paramètres
-
xh
-
Un identifiant de lien du processus XSLT créé avec la fonction xslt_create().
-
handlers
-
Un tableau possédant les clés suivantes : "get_all", "open", "get", "put", et "close".
Chaque entrée doit être un nom de fonction ou un tableau du format suivant : array($obj, "method").
Notez que le tableau fourni ne doit pas nécessairement contenir tous les éléments du gestionnaire (bien que cela reste possible), mais il doit uniquement correspondre au format "handler" => "function" décrit ci-dessus.
Chacune des fonctions individuelles de scheme appelée est au format suivant :
string get_all(resource processor, string scheme, string rest) resource open(resource processor, string scheme, string rest) int get(resource processor, resource fp, string &data) int put(resource processor, resource fp, string data) void close(resource processor, resource fp)
Valeurs de retour
Aucune valeur n'est retournée.
Exemples
Exemple #1 Exemple avec xslt_set_scheme_handlers()
<?php // Définition du gestionnaire function mySchemeHandler($processor, $scheme, $rest) { $rest = substr($rest,1); // pour effacer le premier '/', automatiquement ajouté par le moteur if ($scheme == 'file_exists') { // Le résultat est retourné dans une chaîne XML return '<?xml version="1.0" encoding="UTF-8"?><root>' . (file_exists($rest) ? 'true' : 'false') . '</root>'; } } $SchemeHandlerArray = array('get_all' => 'mySchemeHandler'); // Démarre le moteur $params = array(); $xh = xslt_create(); xslt_set_scheme_handlers($xh, $SchemeHandlerArray); $result = xslt_process($xh, "myFile.xml", "myFile.xsl", NULL, array(), $params); xslt_free($xh); echo $result; ?>
Ensuite, dans la feuille de style, vous pouvez tester si un fichier existe avec :
<xsl:if test="document('file_exists:anotherXMLfile.xml')/root='true'"> <!-- Le fichier existe --> </xsl:if>