(PHP 5, PHP 7, PHP 8)
XSLTProcessor::setParameter — Setzt den Wert für einen Parameter
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.
namespaceDie Namespace-URI des XSLT-Parameters.
nameDer lokale Name des Parameters.
valueDer neue Wert für den XSLT-Parameter.
options
Ein assoziatives Array mit name => wert-Paaren.
Wenn eines der Argumente Null-Bytes enthält, wird ein ValueError geworfen.
| 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. |
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');
}
?>