XSLTProcessor::setParameter

(PHP 5, PHP 7, PHP 8)

XSLTProcessor::setParameterSetzt den Wert für einen Parameter

Beschreibung

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

Setzt den Wert von einem oder mehreren Parametern zur Verwendung bei Transformationen mittels XSLTProcessor. Falls ein Parameter im Stylesheet nicht existiert wird der angegebene Wert ignoriert.

Parameter-Liste

namespace

Die Namespace-URI des XSLT-Parameters.

name

Der lokale Name des Parameters.

value

Der neue Wert für den XSLT-Parameter.

options

Ein assoziatives Array mit name => wert-Paaren.

Rückgabewerte

Gibt bei Erfolg true zurück. Bei einem Fehler wird false zurückgegeben.

Fehler/Exceptions

Wenn eines der Argumente Null-Bytes enthält, wird ein ValueError geworfen.

Changelog

Version Beschreibung
8.4.0 Es wird nun ein ValueError geworfen, wenn eines der Argumente Null-Bytes enthält, anstatt diese stillschweigend abzuschneiden.
8.4.0 Es ist nun möglich, einen Parameterwert zu setzen, der sowohl einfache als auch doppelte Anführungszeichen enthält. Vor PHP 8.4.0 führte dies zu einer Warnung.

Beispiele

Beispiel #1 Ändern des Parameters "owner" vor der Transformation

<?php

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

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

// Prozessor konfigurieren
$proc = new XSLTProcessor;
$proc->importStyleSheet($xsl); // Stylesheet anhängen

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

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

?>

Siehe auch