XSLTProcessor::setParameter

(PHP 5, PHP 7, PHP 8)

XSLTProcessor::setParameterDefine el valor de un parámetro

Descripción

public XSLTProcessor::setParameter(string $namespace, string $name, string $value): bool
public XSLTProcessor::setParameter(string $namespace, array $options): bool

Especifica el valor de uno o varios parámetros para ser utilizados en una subsecuencia de transformación con XSLTProcessor. Si el parámetro no existe en la hoja de estilo, será ignorado.

Parámetros

namespace

La URI del espacio de nombres del parámetro XSLT.

name

El nombre local del parámetro XSLT.

value

El nuevo valor del parámetro XSLT.

options

Un array de pares nombre => valor.

Valores devueltos

Devuelve true en caso de éxito o false en caso de error.

Errores/Excepciones

Genera una excepción de tipo ValueError si alguno de los argumentos contiene bytes nulos.

Historial de cambios

Versión Descripción
8.4.0 Ahora lanza una una excepción de tipo ValueError si alguno de los argumentos contiene bytes nulos, en lugar de truncar silenciosamente.
8.4.0 Ahora es posible definir un valor de parámetro que contenga tanto comillas simples como dobles. Antes de PHP 8.4.0, esto generaba una advertencia.

Ejemplos

Ejemplo #1 Modificación del propietario antes de la transformación

<?php

$collections
= array(
'Marc Rutkowski' => 'marc',
'Olivier Parmentier' => 'olivier'
);

$xsl = new DOMDocument;
$xsl->load('collection.xsl');

// Configurar el transformador
$proc = new XSLTProcessor;
$proc->importStyleSheet($xsl); // adjuntar las reglas xsl

foreach ($collections as $name => $file) {
// Cargar la fuente XML
$xml = new DOMDocument;
$xml->load('collection_' . $file . '.xml');

$proc->setParameter('', 'owner', $name);
$proc->transformToURI($xml, 'file:///tmp/' . $file . '.html');
}

?>

Ver también