xslt_set_scheme_handlers

(PHP 4 >= 4.0.6)

xslt_set_scheme_handlersConfigure un gestionnaire de Scheme pour un processeur XSLT

Description

void xslt_set_scheme_handlers ( resource $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()

  1. <?php
  2.  
  3. // Définition du gestionnaire
  4. function mySchemeHandler($processor, $scheme, $rest)
  5. {
  6. $rest = substr($rest,1); // pour effacer le premier '/', automatiquement ajouté par le moteur
  7. if ($scheme == 'file_exists') {
  8. // Le résultat est retourné dans une chaîne XML
  9. return '<?xml version="1.0" encoding="UTF-8"?><root>' . (file_exists($rest) ? 'true' : 'false') . '</root>';
  10. }
  11. }
  12.  
  13. $SchemeHandlerArray = array('get_all' => 'mySchemeHandler');
  14.  
  15. // Démarre le moteur
  16. $params = array();
  17. $xh = xslt_create();
  18.  
  19. xslt_set_scheme_handlers($xh, $SchemeHandlerArray);
  20.  
  21. $result = xslt_process($xh, "myFile.xml", "myFile.xsl", NULL, array(), $params);
  22. xslt_free($xh);
  23.  
  24. echo $result;
  25.  
  26. ?>

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>

Voir aussi

LoadingChargement en cours