XSLTProcessor::setParameter

(PHP 5, PHP 7, PHP 8)

XSLTProcessor::setParameterDefine um valor para um parâmetro

Descrição

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

Define o valor para um ou mais parâmetros para ser usados em transformações subsequentes com XSLTProcessor. Se o parâmetro não existir na folha de estilos, ele será ignorado.

Parâmetros

namespace

A URI de espaço de nomes do parâmetro XSLT.

name

O nome local do parâmetro XSLT.

value

O novo valor do parâmetro XSLT.

options

Um array de pares name => value.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Erros/Exceções

Lança uma exceção ValueError se qualquer argumento contiver bytes nulos.

Registro de Alterações

Versão Descrição
8.4.0 Agora lança uma exceção ValueError se qualquer argumento contiver bytes nulos ao invés de truncar silenciosamente.
8.4.0 Agora é possível definir um valor de parâmetro contendo tanto aspas simples quanto aspas duplas. Antes do PHP 8.4.0, isto resultava em um alerta.

Exemplos

Exemplo #1 Modificando o parâmetro 'owner' antes da transformação

<?php

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

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

// Configura o transformador
$proc = new XSLTProcessor;
$proc->importStyleSheet($xsl); // anexa as regras xsl

foreach ($collections as $name => $file) {
// Carrega a fonte XML
$xml = new DOMDocument;
$xml->load('collection_' . $file . '.xml');

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

?>

Veja Também