php8.5
Home/ Manual/ xsl / xsltprocessor/ XSLTProcessor::setParameter

XSLTProcessor::setParameter

PHP function Edit on GitHub ✎

(PHP 5, PHP 7, PHP 8)

Set value for a parameter

Description

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

Sets the value of one or more parameters to be used in subsequent transformations with XSLTProcessor. If the parameter doesn't exist in the stylesheet it will be ignored.

Parameters

namespace

The namespace URI of the XSLT parameter.

name

The local name of the XSLT parameter.

value

The new value of the XSLT parameter.

options

An array of name => value pairs.

Return Values

Success

Errors/Exceptions

Throws a ValueError if any of the arguments contain null bytes.

Throws a ValueError if namespace is not empty and name (or one of its keys, if it is an array) uses Clark notation or is a QName.

Changelog

VersionDescription
8.5.0The namespace argument now takes effect; previously it was ignored. A ValueError is now thrown if namespace is not empty and name (or one of its keys, if it is an array) uses Clark notation or is a QName.
8.4.0Now throws a ValueError if any of the arguments contain null bytes instead of silently truncating.
8.4.0It is now possible to set a parameter value containing both single and double quotes. Prior to PHP 8.4.0, this resulted in a warning.

Examples

Changing the owner before the transformation

php
<?php

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

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

// Configure the transformer
$proc = new XSLTProcessor;
$proc->importStyleSheet($xsl); // attach the xsl rules

foreach ($collections as $name => $file) {
    // Load the XML source
    $xml = new DOMDocument;
    $xml->load('collection_' . $file . '.xml');

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

?>

See Also

Source: reference/xsl/xsltprocessor/setparameter.xml · from the official PHP manual (php/doc-en)