PHP 5.6.0RC3 is available

xslt_set_scheme_handlers

(PHP 4 >= 4.0.6)

xslt_set_scheme_handlersEstablecer los manejadores de esquemas para el procesador de XSLT

Descripción

void xslt_set_scheme_handlers ( resource $xh , array $handlers )

Registra los manejadores de esquemas (manejadores de XPath) para el documento.

Parámetros

xh

El identificador de enlace del procesador de XSLT, creado con xslt_create().

handlers

Un array con las siguientes claves: "get_all", "open", "get", "put", y "close".

Cada entrada debe ser un nombre de función o un array con el siguiente formato: array($objeto, "método").

Observe que el array dado no necesita contener todos los diferentes elementos de manejadores de esquemas (aunque podría), sino solamente lo necesario para cumplir con el formato "manejador" => "función" descrito arriba.

Cada una de las funciones de manejadores de esquemas llamadas individualmente están en los siguientes formatos:

string   get_all(resource procesador, string esquema, string resto)
resource open(resource procesador, string esquema, string resto)
int      get(resource procesador, resource fp, string &datos)
int      put(resource procesador, resource fp, string datos)
void     close(resource procesador, resource fp)

Valores devueltos

No devuelve ningún valor.

Ejemplos

Ejemplo #1 Ejemplo de xslt_set_scheme_handlers()

He aquí una implementación de la función "file_exists()" de PHP.

<?php

// Descripción del manejador
function miGestorDeEsquemas($procesador$esquema$resto)
{
    
$resto substr($resto,1);    // para eliminar el primer / añadido automáticamente por el motor
    
if ($esquema == 'file_exists') {
        
// el resultado se embebe en un string xml pequeño
        
return '<?xml version="1.0" encoding="UTF-8"?><root>' . (file_exists($resto) ? 'true' 'false') . '</root>';
    }
}

$ArrayGestoresEsquemas = array('get_all' => 'miGestorDeEsquemas');

// Iniciar el motor
$parámetros = array();
$xh xslt_create();

xslt_set_scheme_handlers($xh$ArrayGestoresEsquemas);

$resultado xslt_process($xh"miFichero.xml""miFichero.xsl"NULL, array(), $parámetros);
xslt_free($xh);

echo 
$resultado;

?>

Después, dentro de la hoja de estilo, se puede comprobar si cierto fichero existe con:

<xsl:if test="document('file_exists:otroFicheroXML.xml')/root='true'">
 <!-- El fichero existe -->
</xsl:if>

Ver también

add a note add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top