i use xslt and page can be generated in two mode, one using <? xml-stylesheet href='page.xsl' >, one other using the php sablotron lib, the first one use path relative to the xsl file for includes , but the second with sablotron consider all the includes as relative to the set base path, is there any way to get sablotron to resolve include as relative to xslt file instead of the set_base for all files ?
xslt_set_base
(PHP 4 >= 4.0.5)
xslt_set_base — Imposta l'URI di base per tutte le trasformazioni XSLT
Descrizione
void xslt_set_base
( resource
$xh
, string $uri
)Imposta l'URI di base per tutte le trasformazioni XSLT, l'URI di base è usato con le istruzioni Xpath per la risoluzione di document() e di altri comandi che accedono a risorse esterne. Viene utilizzato, inoltre, per risolvere gli URI degli elementi <xsl:include> ed <xsl:import>.
Elenco dei parametri
-
xh -
The XSLT processor link identifier, created with xslt_create().
-
uri -
L'URI di base URI da utilizzare.
Valori restituiti
Nessun valore viene restituito.
Log delle modifiche
| Versione | Descrizione |
|---|---|
| 4.3.0 |
Da PHP 4.3.0, l'URI di base di default è la directory di esecuzione dello script.
Infatti è la directory indicata dalla costante __FILE__.
L'URI di base di default è meno prevedibile con le versioni precedenti.
|
Note
Nota:
Si noti che file:// è necessario all'inizio del path se si usa Windows.
h0bby1 at yahoo dot com ¶
5 years ago
edmon at oohaa dot net ¶
8 years ago
$filebase = 'file://' . getcwd () . '/xsl/';
xslt_set_base($xsltproc, $filebase);
file:// is needed for linux too.
php 4.3.8
Kelvin Cheng ¶
9 years ago
It works great on my windows platform as below.
<?php
$xh = xslt_create();
$fileBase = 'file://' . getcwd () . '/';
xslt_set_base ( $xh, $fileBase );
...
?>
Actually, it make use of the getcwd() to get the current directory. Hope it can help.
